data_move.go 44 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369
  1. package data_manage_permission
  2. import (
  3. "encoding/json"
  4. "eta/eta_api/models"
  5. "eta/eta_api/models/data_manage"
  6. "eta/eta_api/models/data_manage/data_manage_permission"
  7. "eta/eta_api/models/data_manage/excel"
  8. "eta/eta_api/models/system"
  9. "eta/eta_api/utils"
  10. "fmt"
  11. "github.com/rdlucklib/rdluck_tools/uuid"
  12. "strconv"
  13. "strings"
  14. "time"
  15. )
  16. // GetEdbChartClassifyList
  17. // @Description: 获取数据权限那边的分类列表
  18. // @author: Roc
  19. // @datetime 2024-04-01 09:46:29
  20. // @param source int
  21. // @param subSource int
  22. // @return resp data_manage.EdbChartClassifyResp
  23. // @return err error
  24. func GetEdbChartClassifyList(source, subSource int) (resp data_manage.EdbChartClassifyResp, err error) {
  25. switch source {
  26. case 1: //手工数据指标
  27. list, e := models.GetEdbdataClassify(0)
  28. if e != nil {
  29. err = e
  30. return
  31. }
  32. for _, v := range list {
  33. item := data_manage.EdbChartClassify{
  34. ClassifyId: v.ClassifyId,
  35. ClassifyName: v.ClassifyName,
  36. ParentId: v.ParentId,
  37. }
  38. for _, v2 := range v.Child {
  39. child := data_manage.EdbChartClassify{
  40. ClassifyId: v2.ClassifyId,
  41. ClassifyName: v2.ClassifyName,
  42. ParentId: v2.ParentId,
  43. }
  44. item.Child = append(item.Child, &child)
  45. }
  46. resp.List = append(resp.List, &item)
  47. }
  48. case 2: //钢联化工数据库
  49. rootList, e := data_manage.GetBaseFromMysteelChemicalClassifyByParentId(0)
  50. if e != nil && e.Error() != utils.ErrNoRow() {
  51. err = e
  52. return
  53. }
  54. classifyAll, e := data_manage.GetAllBaseFromMysteelChemicalClassify()
  55. if e != nil && e.Error() != utils.ErrNoRow() {
  56. err = e
  57. return
  58. }
  59. rootChildMap := make(map[int][]*data_manage.BaseFromMysteelChemicalClassifyItems)
  60. for _, v := range classifyAll {
  61. rootChildMap[v.ParentId] = append(rootChildMap[v.ParentId], v)
  62. }
  63. nodeAll := make([]*data_manage.BaseFromMysteelChemicalClassifyItems, 0)
  64. for _, v := range rootList {
  65. if existItems, ok := rootChildMap[v.BaseFromMysteelChemicalClassifyId]; ok {
  66. v.Children = existItems
  67. } else {
  68. items := make([]*data_manage.BaseFromMysteelChemicalClassifyItems, 0)
  69. v.Children = items
  70. }
  71. nodeAll = append(nodeAll, v)
  72. }
  73. for _, v := range nodeAll {
  74. item := data_manage.EdbChartClassify{
  75. ClassifyId: v.BaseFromMysteelChemicalClassifyId,
  76. ClassifyName: v.ClassifyName,
  77. ParentId: v.ParentId,
  78. }
  79. for _, v2 := range v.Children {
  80. child := data_manage.EdbChartClassify{
  81. ClassifyId: v2.BaseFromMysteelChemicalClassifyId,
  82. ClassifyName: v2.ClassifyName,
  83. ParentId: v2.ParentId,
  84. }
  85. item.Child = append(item.Child, &child)
  86. }
  87. resp.List = append(resp.List, &item)
  88. }
  89. case 3:
  90. //ETA指标库
  91. //rootList, e := data_manage.GetEdbClassifyByParentId(0, 0)
  92. //if e != nil && e.Error() != utils.ErrNoRow() {
  93. // err = e
  94. // return
  95. //}
  96. // 考虑到后面可以会迭代到10层, 这里直接用递归处理
  97. classifyAll, e := data_manage.GetAllEdbClassifyByType(0)
  98. if e != nil && e.Error() != utils.ErrNoRow() {
  99. err = e
  100. return
  101. }
  102. resp.List = GetEdbMenuTreeRecursive(classifyAll, 0)
  103. case 4:
  104. //ETA预测指标
  105. // 考虑到后面可以会迭代到10层, 这里直接用递归
  106. classifyAll, e := data_manage.GetAllEdbClassifyByType(1)
  107. if e != nil && e.Error() != utils.ErrNoRow() {
  108. err = e
  109. return
  110. }
  111. resp.List = GetEdbMenuTreeRecursive(classifyAll, 0)
  112. case 5: //图库
  113. // 考虑到后面可以会迭代到10层, 这里直接用递归处理
  114. classifyAll, e := data_manage.GetAllChartClassifyItemsBySource(1)
  115. if e != nil && e.Error() != utils.ErrNoRow() {
  116. err = e
  117. return
  118. }
  119. resp.List = GetChartMenuTreeRecursive(classifyAll, 0)
  120. // 将数据加入缓存
  121. //if utils.Re == nil {
  122. // utils.Rc.Delete(key)
  123. //}
  124. case 6:
  125. // ETA表格
  126. // 考虑到后面可以会迭代到10层, 这里直接用递归处理
  127. classifyAll, e := excel.GetExcelClassifyBySourceOrderByLevel(subSource)
  128. if e != nil && e.Error() != utils.ErrNoRow() {
  129. err = e
  130. return
  131. }
  132. resp.List = GetExcelMenuTreeRecursive(classifyAll, 0)
  133. default:
  134. return
  135. }
  136. return
  137. }
  138. // GetEdbMenuTreeRecursive 递归指标库菜单树
  139. func GetEdbMenuTreeRecursive(list []*data_manage.EdbClassifyItems, parentId int) []*data_manage.EdbChartClassify {
  140. res := make([]*data_manage.EdbChartClassify, 0)
  141. for _, v := range list {
  142. t := new(data_manage.EdbChartClassify)
  143. t.ClassifyId = v.ClassifyId
  144. t.ClassifyName = v.ClassifyName
  145. t.ParentId = v.ParentId
  146. t.IsJoinPermission = v.IsJoinPermission
  147. if v.ParentId == parentId {
  148. t.Child = GetEdbMenuTreeRecursive(list, v.ClassifyId)
  149. res = append(res, t)
  150. }
  151. }
  152. return res
  153. }
  154. // GetChartMenuTreeRecursive 递归指标库菜单树
  155. func GetChartMenuTreeRecursive(list []*data_manage.ChartClassifyItems, parentId int) []*data_manage.EdbChartClassify {
  156. res := make([]*data_manage.EdbChartClassify, 0)
  157. for _, v := range list {
  158. t := new(data_manage.EdbChartClassify)
  159. t.ClassifyId = v.ChartClassifyId
  160. t.ClassifyName = v.ChartClassifyName
  161. t.ParentId = v.ParentId
  162. t.IsJoinPermission = v.IsJoinPermission
  163. if v.ParentId == parentId {
  164. t.Child = GetChartMenuTreeRecursive(list, v.ChartClassifyId)
  165. res = append(res, t)
  166. }
  167. }
  168. return res
  169. }
  170. // GetExcelMenuTreeRecursive
  171. // @Description: 递归ETA表格菜单树
  172. // @author: Roc
  173. // @datetime 2024-03-27 10:30:32
  174. // @param list []*data_manage.ChartClassifyItems
  175. // @param parentId int
  176. // @return []*data_manage.EdbChartClassify
  177. func GetExcelMenuTreeRecursive(list []*excel.ExcelClassifyItems, parentId int) []*data_manage.EdbChartClassify {
  178. res := make([]*data_manage.EdbChartClassify, 0)
  179. for _, v := range list {
  180. t := new(data_manage.EdbChartClassify)
  181. t.ClassifyId = v.ExcelClassifyId
  182. t.ClassifyName = v.ExcelClassifyName
  183. t.ParentId = v.ParentId
  184. t.IsJoinPermission = v.IsJoinPermission
  185. if v.ParentId == parentId {
  186. t.Child = GetExcelMenuTreeRecursive(list, v.ExcelClassifyId)
  187. res = append(res, t)
  188. }
  189. }
  190. return res
  191. }
  192. // GetMoveEdbChartList 获取待转移的指标/图表列表
  193. // @param source 来源 :1:手工数据指标 2:钢联化工数据库 3:ETA指标库 4:ETA预测指标 5:图库 6:ETA表格
  194. func GetMoveEdbChartList(source, subSource, userId int, keyword, classify string, startSize, pageSize int) (list []data_manage.MoveEdbChartList, total int, err error) {
  195. var condition string
  196. var pars []interface{}
  197. switch source {
  198. case 1: //手工数据指标
  199. if keyword != "" {
  200. condition += ` AND (a.SEC_NAME LIKE ? OR a.TRADE_CODE like ? ) `
  201. pars = utils.GetLikeKeywordPars(pars, keyword, 2)
  202. }
  203. if userId > 0 {
  204. condition += ` AND a.user_id = ? `
  205. pars = append(pars, userId)
  206. }
  207. if classify != "" {
  208. condition += ` AND a.classify_id IN (` + classify + `) `
  209. }
  210. total, err = models.GetEdbinfoListCount(condition, pars, "", 0)
  211. if err != nil {
  212. return
  213. }
  214. tmpList, tmpErr := models.GetEdbinfoList(condition, pars, startSize, pageSize, "", 0)
  215. if tmpErr != nil {
  216. err = tmpErr
  217. return
  218. }
  219. if len(tmpList) > 0 {
  220. adminIdList := make([]int, 0)
  221. for _, v := range tmpList {
  222. adminIdList = append(adminIdList, v.UserId)
  223. }
  224. adminList, tmpErr := system.GetAdminListByIdListWithoutEnable(adminIdList)
  225. if tmpErr != nil {
  226. err = tmpErr
  227. return
  228. }
  229. adminMap := make(map[int]string)
  230. for _, adminInfo := range adminList {
  231. adminMap[adminInfo.AdminId] = adminInfo.RealName
  232. }
  233. for _, v := range tmpList {
  234. list = append(list, data_manage.MoveEdbChartList{
  235. DataId: v.TradeCode,
  236. Code: v.TradeCode,
  237. Name: v.SecName,
  238. ClassifyName: v.ClassifyName,
  239. CreateUserId: v.UserId,
  240. CreateUserName: adminMap[v.UserId],
  241. })
  242. }
  243. }
  244. case 2: //钢联化工数据库
  245. if keyword != `` {
  246. condition += " AND (index_name like ? OR index_code like ? OR sys_user_real_name like ? ) "
  247. pars = utils.GetLikeKeywordPars(pars, keyword, 3)
  248. }
  249. if userId > 0 {
  250. condition += ` AND sys_user_id = ? `
  251. pars = append(pars, userId)
  252. }
  253. if classify != "" {
  254. condition += ` AND base_from_mysteel_chemical_classify_id IN (` + classify + `) `
  255. }
  256. total, err = data_manage.GetMysteelChemicalIndexCount(condition, pars)
  257. if err != nil {
  258. return
  259. }
  260. tmpList, tmpErr := data_manage.GetMysteelChemicalIndexList(condition, pars, startSize, pageSize, "DESC")
  261. if tmpErr != nil {
  262. err = tmpErr
  263. return
  264. }
  265. for _, v := range tmpList {
  266. list = append(list, data_manage.MoveEdbChartList{
  267. DataId: strconv.Itoa(v.BaseFromMysteelChemicalIndexId),
  268. Code: v.IndexCode,
  269. Name: v.IndexName,
  270. //ClassifyName: v.,
  271. CreateUserId: v.SysUserId,
  272. CreateUserName: v.SysUserRealName,
  273. })
  274. }
  275. case 3, 4: //ETA指标库、ETA预测指标
  276. if keyword != `` {
  277. condition += " AND (edb_code like ? OR edb_name like ? OR sys_user_real_name like ? ) "
  278. pars = utils.GetLikeKeywordPars(pars, keyword, 3)
  279. }
  280. if userId > 0 {
  281. condition += ` AND sys_user_id = ? `
  282. pars = append(pars, userId)
  283. }
  284. if classify != "" {
  285. condition += ` AND classify_id IN (` + classify + `) `
  286. }
  287. edbInfoType := 0 //ETA指标库
  288. if source == 4 { //ETA预测指标
  289. edbInfoType = 1
  290. }
  291. condition += ` AND edb_info_type = ? `
  292. pars = append(pars, edbInfoType)
  293. total, err = data_manage.GetEdbInfoByConditionCount(condition, pars)
  294. if err != nil {
  295. return
  296. }
  297. tmpList, tmpErr := data_manage.GetEdbInfoListByCondition(condition, pars, startSize, pageSize, "DESC")
  298. if tmpErr != nil {
  299. err = tmpErr
  300. return
  301. }
  302. for _, v := range tmpList {
  303. list = append(list, data_manage.MoveEdbChartList{
  304. DataId: strconv.Itoa(v.EdbInfoId),
  305. Code: v.EdbCode,
  306. Name: v.EdbName,
  307. //ClassifyName: v.,
  308. CreateUserId: v.SysUserId,
  309. CreateUserName: v.SysUserRealName,
  310. })
  311. }
  312. case 5: //图库
  313. // 只展示eta图库
  314. condition += ` AND source = ? `
  315. pars = append(pars, utils.CHART_SOURCE_DEFAULT)
  316. // 关键字搜索
  317. if keyword != `` {
  318. condition += " AND (chart_name like ? OR sys_user_real_name like ? ) "
  319. pars = utils.GetLikeKeywordPars(pars, keyword, 2)
  320. }
  321. if userId > 0 {
  322. condition += ` AND sys_user_id = ? `
  323. pars = append(pars, userId)
  324. }
  325. if classify != "" {
  326. condition += ` AND chart_classify_id IN (` + classify + `) `
  327. }
  328. total, err = data_manage.GetChartInfoCountByCondition(condition, pars)
  329. if err != nil {
  330. return
  331. }
  332. tmpList, tmpErr := data_manage.GetChartInfoListByCondition(condition, pars, startSize, pageSize)
  333. if tmpErr != nil {
  334. err = tmpErr
  335. return
  336. }
  337. // 获取所有的图表分类
  338. firstClassifyList, tmpErr := data_manage.GetChartClassifyByParentId(0, 1)
  339. if tmpErr != nil {
  340. err = tmpErr
  341. return
  342. }
  343. firstClassifyNameMap := make(map[int]string)
  344. for _, v := range firstClassifyList {
  345. firstClassifyNameMap[v.ChartClassifyId] = v.ChartClassifyName
  346. }
  347. secondClassList, tmpErr := data_manage.GetChartClassifyAll(1)
  348. if tmpErr != nil {
  349. err = tmpErr
  350. return
  351. }
  352. secondClassifyNameMap := make(map[int]string)
  353. for _, v := range secondClassList {
  354. firstName := firstClassifyNameMap[v.ParentId]
  355. if firstName != `` {
  356. firstName = firstName + " / "
  357. }
  358. secondClassifyNameMap[v.ChartClassifyId] = firstName + v.ChartClassifyName
  359. }
  360. for _, v := range tmpList {
  361. list = append(list, data_manage.MoveEdbChartList{
  362. DataId: strconv.Itoa(v.ChartInfoId),
  363. Name: v.ChartName,
  364. ClassifyName: secondClassifyNameMap[v.ChartClassifyId],
  365. CreateUserId: v.SysUserId,
  366. CreateUserName: v.SysUserRealName,
  367. })
  368. }
  369. case 6: //ETA表格
  370. if keyword != `` {
  371. condition += " AND (excel_name like ? OR sys_user_real_name like ? ) "
  372. pars = utils.GetLikeKeywordPars(pars, keyword, 2)
  373. }
  374. if userId > 0 {
  375. condition += ` AND sys_user_id = ? `
  376. pars = append(pars, userId)
  377. }
  378. if classify != "" {
  379. condition += ` AND excel_classify_id IN (` + classify + `) `
  380. }
  381. condition += " AND source = ? "
  382. pars = append(pars, subSource)
  383. if source == utils.BALANCE_TABLE {
  384. condition += " AND parent_id = 0 AND balance_type = 0 "
  385. }
  386. total, err = excel.GetExcelInfoCountByCondition(condition, pars)
  387. if err != nil {
  388. return
  389. }
  390. tmpList, tmpErr := excel.GetNoContentExcelInfoListByCondition(condition, pars, startSize, pageSize)
  391. if tmpErr != nil {
  392. err = tmpErr
  393. return
  394. }
  395. // 获取所有的图表分类
  396. firstClassifyList, tmpErr := excel.GetExcelClassifyByParentId(0, subSource)
  397. if tmpErr != nil {
  398. err = tmpErr
  399. return
  400. }
  401. firstClassifyNameMap := make(map[int]string)
  402. for _, v := range firstClassifyList {
  403. firstClassifyNameMap[v.ExcelClassifyId] = v.ExcelClassifyName
  404. }
  405. secondClassList, tmpErr := excel.GetExcelClassifyBySource(subSource)
  406. if tmpErr != nil {
  407. err = tmpErr
  408. return
  409. }
  410. secondClassifyNameMap := make(map[int]string)
  411. for _, v := range secondClassList {
  412. firstName := firstClassifyNameMap[v.ParentId]
  413. if firstName != `` {
  414. firstName = firstName + " / "
  415. }
  416. secondClassifyNameMap[v.ExcelClassifyId] = firstName + v.ExcelClassifyName
  417. }
  418. for _, v := range tmpList {
  419. list = append(list, data_manage.MoveEdbChartList{
  420. DataId: strconv.Itoa(v.ExcelInfoId),
  421. Name: v.ExcelClassifyName,
  422. ClassifyName: secondClassifyNameMap[v.ExcelClassifyId],
  423. CreateUserId: v.SysUserId,
  424. CreateUserName: v.SysUserRealName,
  425. })
  426. }
  427. default:
  428. return
  429. }
  430. return
  431. }
  432. // MoveEdbChart 转移指标/图表创建人
  433. // @param source 来源 :1:手工数据指标 2:钢联化工数据库 3:ETA指标库 4:ETA预测指标 5:图库 6:ETA表格
  434. func MoveEdbChart(source, subSource, oldUserId, newUserId int, isSelectAll bool, dataId, noDataId []string, keyword, classify string, opUserId int) (err error, errMsg string) {
  435. adminInfo, err := system.GetSysAdminById(newUserId)
  436. if err != nil {
  437. return
  438. }
  439. // 如果勾选全部数据,那么
  440. if isSelectAll {
  441. // 找出不要的指标ID列表
  442. noDataIdMap := make(map[string]string, 0)
  443. for _, v := range noDataId {
  444. noDataIdMap[v] = v
  445. }
  446. // 需要转义的指标/图表ID列表
  447. dataId = make([]string, 0)
  448. // 获取所有指标/图表
  449. list, _, tmpErr := GetMoveEdbChartList(source, subSource, oldUserId, keyword, classify, 0, 100000)
  450. if tmpErr != nil {
  451. err = tmpErr
  452. return
  453. }
  454. for _, v := range list {
  455. if _, ok := noDataIdMap[v.DataId]; !ok {
  456. dataId = append(dataId, v.DataId)
  457. }
  458. }
  459. }
  460. // 操作记录
  461. dataPermissionMoveRecordList := make([]*data_manage_permission.DataPermissionMoveRecord, 0)
  462. uniqueCode := uuid.NewUUID().Hex32()
  463. title := `资产转移`
  464. content := `资产转入`
  465. switch source {
  466. case 1: //手工数据指标
  467. content += `(手工指标数据)`
  468. tmpList, tmpErr := models.GetEdbinfoListByCodeListByCodeIdList(dataId)
  469. if tmpErr != nil {
  470. err = tmpErr
  471. return
  472. }
  473. if len(tmpList) > 0 {
  474. for _, v := range tmpList {
  475. //if v.UserId == newUserId {
  476. // errMsg = "新创建人不可和原创建人一致"
  477. // err = errors.New(errMsg)
  478. // return
  479. //}
  480. // 操作记录
  481. dataPermissionMoveRecordList = append(dataPermissionMoveRecordList, &data_manage_permission.DataPermissionMoveRecord{
  482. DataPermissionMoveRecordId: 0,
  483. Source: int32(source),
  484. SubSource: int32(subSource),
  485. OpUniqueCode: uniqueCode,
  486. DataId: v.TradeCode,
  487. DataCode: v.TradeCode,
  488. DataName: v.SecName,
  489. OriginalUserId: int32(v.UserId),
  490. OriginalUserName: v.UserName,
  491. NewUserId: int32(adminInfo.AdminId),
  492. NewUserName: adminInfo.RealName,
  493. CreateTime: time.Now(),
  494. })
  495. }
  496. // 修改创建人
  497. err = models.ModifyEdbinfoUserIdByCodeList(dataId, newUserId)
  498. }
  499. case 2: //钢联化工数据库
  500. content += `(钢联化工数据库)`
  501. tmpList, tmpErr := data_manage.GetMysteelChemicalIndexListByIndexId(dataId)
  502. if tmpErr != nil {
  503. err = tmpErr
  504. return
  505. }
  506. if len(tmpList) > 0 {
  507. for _, v := range tmpList {
  508. //if v.SysUserId == newUserId {
  509. // errMsg = "新创建人不可和原创建人一致"
  510. // err = errors.New(errMsg)
  511. // return
  512. //}
  513. // 操作记录
  514. dataPermissionMoveRecordList = append(dataPermissionMoveRecordList, &data_manage_permission.DataPermissionMoveRecord{
  515. DataPermissionMoveRecordId: 0,
  516. Source: int32(source),
  517. SubSource: int32(subSource),
  518. OpUniqueCode: uniqueCode,
  519. DataId: fmt.Sprint(v.BaseFromMysteelChemicalIndexId),
  520. DataCode: v.IndexCode,
  521. DataName: v.IndexName,
  522. OriginalUserId: int32(v.SysUserId),
  523. OriginalUserName: v.SysUserRealName,
  524. NewUserId: int32(adminInfo.AdminId),
  525. NewUserName: adminInfo.RealName,
  526. CreateTime: time.Now(),
  527. })
  528. }
  529. // 修改创建人
  530. err = data_manage.ModifyMysteelChemicalIndexUserIdByCodeList(dataId, adminInfo.AdminId, adminInfo.RealName)
  531. }
  532. case 3, 4: //ETA指标库、ETA预测指标
  533. if source == 3 {
  534. content += `(ETA指标库)`
  535. } else {
  536. content += `(ETA预测指标)`
  537. }
  538. tmpList, tmpErr := data_manage.GetEdbInfoListByEdbInfoId(dataId)
  539. if tmpErr != nil {
  540. err = tmpErr
  541. return
  542. }
  543. if len(tmpList) > 0 {
  544. for _, v := range tmpList {
  545. //if v.SysUserId == newUserId {
  546. // errMsg = "新创建人不可和原创建人一致"
  547. // err = errors.New(errMsg)
  548. // return
  549. //}
  550. // 操作记录
  551. dataPermissionMoveRecordList = append(dataPermissionMoveRecordList, &data_manage_permission.DataPermissionMoveRecord{
  552. DataPermissionMoveRecordId: 0,
  553. Source: int32(source),
  554. SubSource: int32(subSource),
  555. OpUniqueCode: uniqueCode,
  556. DataId: fmt.Sprint(v.EdbInfoId),
  557. DataCode: v.EdbCode,
  558. DataName: v.EdbName,
  559. OriginalUserId: int32(v.SysUserId),
  560. OriginalUserName: v.SysUserRealName,
  561. NewUserId: int32(adminInfo.AdminId),
  562. NewUserName: adminInfo.RealName,
  563. CreateTime: time.Now(),
  564. })
  565. }
  566. // 修改创建人
  567. err = data_manage.ModifyEdbInfoUserIdByCodeList(dataId, adminInfo.AdminId, adminInfo.RealName)
  568. // 移除当前用户的不可操作权限
  569. {
  570. obj := data_manage.EdbInfoNoPermissionAdmin{}
  571. for _, v := range dataId {
  572. edbInfoId, _ := strconv.Atoi(v)
  573. go obj.DeleteByEdbInfoIdAndAdminId(edbInfoId, adminInfo.AdminId)
  574. }
  575. }
  576. }
  577. case 5: //图库
  578. content += `(ETA图库)`
  579. // 只展示eta图库
  580. subSource = utils.CHART_SOURCE_DEFAULT
  581. tmpList, tmpErr := data_manage.GetChartInfoListByChartIdList(dataId)
  582. if tmpErr != nil {
  583. err = tmpErr
  584. return
  585. }
  586. if len(tmpList) > 0 {
  587. for _, v := range tmpList {
  588. //if v.SysUserId == newUserId {
  589. // errMsg = "新创建人不可和原创建人一致"
  590. // err = errors.New(errMsg)
  591. // return
  592. //}
  593. // 操作记录
  594. dataPermissionMoveRecordList = append(dataPermissionMoveRecordList, &data_manage_permission.DataPermissionMoveRecord{
  595. DataPermissionMoveRecordId: 0,
  596. Source: int32(source),
  597. SubSource: int32(subSource),
  598. OpUniqueCode: uniqueCode,
  599. DataId: fmt.Sprint(v.ChartInfoId),
  600. DataCode: fmt.Sprint(v.ChartInfoId),
  601. DataName: v.ChartName,
  602. OriginalUserId: int32(v.SysUserId),
  603. OriginalUserName: v.SysUserRealName,
  604. NewUserId: int32(adminInfo.AdminId),
  605. NewUserName: adminInfo.RealName,
  606. CreateTime: time.Now(),
  607. })
  608. }
  609. // 修改创建人
  610. err = data_manage.ModifyChartInfoUserIdByCodeList(dataId, adminInfo.AdminId, adminInfo.RealName)
  611. }
  612. case 6: // ETA表格
  613. content += `(ETA表格)`
  614. tmpList, tmpErr := excel.GetNoContentExcelListByExcelInfoIdList(dataId)
  615. if tmpErr != nil {
  616. err = tmpErr
  617. return
  618. }
  619. if len(tmpList) > 0 {
  620. for _, v := range tmpList {
  621. //if v.SysUserId == newUserId {
  622. // errMsg = "新创建人不可和原创建人一致"
  623. // err = errors.New(errMsg)
  624. // return
  625. //}
  626. // 操作记录
  627. dataPermissionMoveRecordList = append(dataPermissionMoveRecordList, &data_manage_permission.DataPermissionMoveRecord{
  628. DataPermissionMoveRecordId: 0,
  629. Source: int32(source),
  630. SubSource: int32(subSource),
  631. OpUniqueCode: uniqueCode,
  632. DataId: fmt.Sprint(v.ExcelInfoId),
  633. DataCode: fmt.Sprint(v.ExcelInfoId),
  634. DataName: v.ExcelName,
  635. OriginalUserId: int32(v.SysUserId),
  636. OriginalUserName: v.SysUserRealName,
  637. NewUserId: int32(adminInfo.AdminId),
  638. NewUserName: adminInfo.RealName,
  639. CreateTime: time.Now(),
  640. })
  641. }
  642. // 修改创建人
  643. err = excel.ModifyExcelInfoUserIdByCodeList(dataId, adminInfo.AdminId, adminInfo.RealName)
  644. }
  645. default:
  646. return
  647. }
  648. // 转移失败了那么就直接返回了
  649. if err != nil {
  650. return
  651. }
  652. // 添加资产转移的记录
  653. dataPermissionMessage := &data_manage_permission.DataPermissionMessage{
  654. DataPermissionMessageId: 0,
  655. SendUserId: int32(opUserId),
  656. ReceiveUserId: int32(adminInfo.AdminId),
  657. Content: title,
  658. Remark: content,
  659. OpType: 1,
  660. Source: int32(source),
  661. SubSource: int32(subSource),
  662. OpUniqueCode: uniqueCode,
  663. IsRead: 0,
  664. CreateTime: time.Now(),
  665. ModifyTime: time.Now(),
  666. }
  667. tmpErr := data_manage_permission.AddDataPermissionMoveRecord(dataPermissionMoveRecordList, dataPermissionMessage)
  668. // 失败的话,日志记录
  669. if tmpErr != nil {
  670. // 序列化结构体为 JSON 数据
  671. recordListJsonBytes, tmpErr2 := json.Marshal(dataPermissionMoveRecordList)
  672. if tmpErr2 != nil {
  673. utils.FileLog.Error(fmt.Sprintf("添加资产转移的记录失败:%s;list转json失败:;操作记录:%+v;消息记录:%+v", tmpErr.Error(), dataPermissionMoveRecordList, dataPermissionMessage))
  674. return
  675. }
  676. // 序列化结构体为 JSON 数据
  677. messageJsonBytes, tmpErr2 := json.Marshal(dataPermissionMessage)
  678. if tmpErr2 != nil {
  679. utils.FileLog.Error(fmt.Sprintf("添加资产转移的记录失败:%s;message转json失败:;操作记录:%+v;消息记录:%+v", tmpErr.Error(), dataPermissionMoveRecordList, dataPermissionMessage))
  680. return
  681. }
  682. utils.FileLog.Error(fmt.Sprintf("添加资产转移的记录失败:%s;操作记录:%s;消息记录:%s", tmpErr.Error(), string(recordListJsonBytes), string(messageJsonBytes)))
  683. }
  684. return
  685. }
  686. // MoveAllEdbChartOld
  687. // @Description: 通过原创建人转移指标/图表创建人
  688. // @author: Roc
  689. // @datetime 2024-03-26 15:11:12
  690. // @param sourceList []int 1:手工数据指标 2:钢联化工数据库 3:ETA指标库 4:ETA预测指标 5:图库 6:ETA表格
  691. // @param oldUserId []int
  692. // @param userId int
  693. // @param opUserId int
  694. // @return err error
  695. // @return errMsg string
  696. func MoveAllEdbChartOld(sourceList, oldUserIdList []int, userId, opUserId int) (err error, errMsg string) {
  697. adminInfo, err := system.GetSysAdminById(userId)
  698. if err != nil {
  699. return
  700. }
  701. // 操作记录
  702. dataPermissionMoveRecordList := make([]*data_manage_permission.DataPermissionMoveRecord, 0)
  703. uniqueCode := uuid.NewUUID().Hex32()
  704. title := `资产转移`
  705. content := `资产转入`
  706. sourceStrList := make([]string, 0)
  707. for _, source := range sourceList {
  708. switch source {
  709. case 1: //手工数据指标
  710. sourceStrList = append(sourceStrList, "手工指标数据")
  711. tmpList, tmpErr := models.GetEdbinfoListByCodeListByUserId(oldUserIdList)
  712. if tmpErr != nil {
  713. err = tmpErr
  714. return
  715. }
  716. if len(tmpList) > 0 {
  717. for _, v := range tmpList {
  718. // 操作记录
  719. dataPermissionMoveRecordList = append(dataPermissionMoveRecordList, &data_manage_permission.DataPermissionMoveRecord{
  720. DataPermissionMoveRecordId: 0,
  721. Source: int32(source),
  722. SubSource: 0,
  723. OpUniqueCode: uniqueCode,
  724. DataId: v.TradeCode,
  725. DataCode: v.TradeCode,
  726. DataName: v.SecName,
  727. OriginalUserId: int32(v.UserId),
  728. OriginalUserName: v.UserName,
  729. NewUserId: int32(adminInfo.AdminId),
  730. NewUserName: adminInfo.RealName,
  731. CreateTime: time.Now(),
  732. })
  733. }
  734. // 修改创建人
  735. err = models.ModifyEdbinfoUserIdByOldUserId(oldUserIdList, userId)
  736. }
  737. case 2: //钢联化工数据库
  738. sourceStrList = append(sourceStrList, "钢联化工数据库")
  739. tmpList, tmpErr := data_manage.GetMysteelChemicalIndexListByUserId(oldUserIdList)
  740. if tmpErr != nil {
  741. err = tmpErr
  742. return
  743. }
  744. if len(tmpList) > 0 {
  745. for _, v := range tmpList {
  746. //if v.SysUserId == newUserId {
  747. // errMsg = "新创建人不可和原创建人一致"
  748. // err = errors.New(errMsg)
  749. // return
  750. //}
  751. // 操作记录
  752. dataPermissionMoveRecordList = append(dataPermissionMoveRecordList, &data_manage_permission.DataPermissionMoveRecord{
  753. DataPermissionMoveRecordId: 0,
  754. Source: int32(source),
  755. SubSource: 0,
  756. OpUniqueCode: uniqueCode,
  757. DataId: fmt.Sprint(v.BaseFromMysteelChemicalIndexId),
  758. DataCode: v.IndexCode,
  759. DataName: v.IndexName,
  760. OriginalUserId: int32(v.SysUserId),
  761. OriginalUserName: v.SysUserRealName,
  762. NewUserId: int32(adminInfo.AdminId),
  763. NewUserName: adminInfo.RealName,
  764. CreateTime: time.Now(),
  765. })
  766. }
  767. // 修改创建人
  768. err = data_manage.ModifyMysteelChemicalIndexUserIdByOldUserId(oldUserIdList, adminInfo.AdminId, adminInfo.RealName)
  769. }
  770. case 3: //ETA指标库
  771. sourceStrList = append(sourceStrList, "ETA指标库")
  772. edbInfoType := 0
  773. tmpList, tmpErr := data_manage.GetEdbInfoListByUserId(oldUserIdList, edbInfoType)
  774. if tmpErr != nil {
  775. err = tmpErr
  776. return
  777. }
  778. if len(tmpList) > 0 {
  779. for _, v := range tmpList {
  780. // 操作记录
  781. dataPermissionMoveRecordList = append(dataPermissionMoveRecordList, &data_manage_permission.DataPermissionMoveRecord{
  782. DataPermissionMoveRecordId: 0,
  783. Source: int32(source),
  784. SubSource: int32(edbInfoType),
  785. OpUniqueCode: uniqueCode,
  786. DataId: fmt.Sprint(v.EdbInfoId),
  787. DataCode: v.EdbCode,
  788. DataName: v.EdbName,
  789. OriginalUserId: int32(v.SysUserId),
  790. OriginalUserName: v.SysUserRealName,
  791. NewUserId: int32(adminInfo.AdminId),
  792. NewUserName: adminInfo.RealName,
  793. CreateTime: time.Now(),
  794. })
  795. }
  796. // 修改创建人
  797. err = data_manage.ModifyEdbInfoUserIdByOldUserId(oldUserIdList, edbInfoType, adminInfo.AdminId, adminInfo.RealName)
  798. }
  799. case 4: //ETA预测指标
  800. sourceStrList = append(sourceStrList, "ETA预测指标")
  801. edbInfoType := 1
  802. tmpList, tmpErr := data_manage.GetEdbInfoListByUserId(oldUserIdList, edbInfoType)
  803. if tmpErr != nil {
  804. err = tmpErr
  805. return
  806. }
  807. if len(tmpList) > 0 {
  808. for _, v := range tmpList {
  809. // 操作记录
  810. dataPermissionMoveRecordList = append(dataPermissionMoveRecordList, &data_manage_permission.DataPermissionMoveRecord{
  811. DataPermissionMoveRecordId: 0,
  812. Source: int32(source),
  813. SubSource: int32(edbInfoType),
  814. OpUniqueCode: uniqueCode,
  815. DataId: fmt.Sprint(v.EdbInfoId),
  816. DataCode: v.EdbCode,
  817. DataName: v.EdbName,
  818. OriginalUserId: int32(v.SysUserId),
  819. OriginalUserName: v.SysUserRealName,
  820. NewUserId: int32(adminInfo.AdminId),
  821. NewUserName: adminInfo.RealName,
  822. CreateTime: time.Now(),
  823. })
  824. }
  825. // 修改创建人
  826. err = data_manage.ModifyEdbInfoUserIdByOldUserId(oldUserIdList, edbInfoType, adminInfo.AdminId, adminInfo.RealName)
  827. }
  828. case 5: //ETA图库
  829. sourceStrList = append(sourceStrList, "ETA图库")
  830. // 只展示eta图库
  831. subSource := utils.CHART_SOURCE_DEFAULT
  832. tmpList, tmpErr := data_manage.GetChartInfoListByUserId(oldUserIdList, subSource)
  833. if tmpErr != nil {
  834. err = tmpErr
  835. return
  836. }
  837. if len(tmpList) > 0 {
  838. for _, v := range tmpList {
  839. // 操作记录
  840. dataPermissionMoveRecordList = append(dataPermissionMoveRecordList, &data_manage_permission.DataPermissionMoveRecord{
  841. DataPermissionMoveRecordId: 0,
  842. Source: int32(source),
  843. SubSource: int32(subSource),
  844. OpUniqueCode: uniqueCode,
  845. DataId: fmt.Sprint(v.ChartInfoId),
  846. DataCode: fmt.Sprint(v.ChartInfoId),
  847. DataName: v.ChartName,
  848. OriginalUserId: int32(v.SysUserId),
  849. OriginalUserName: v.SysUserRealName,
  850. NewUserId: int32(adminInfo.AdminId),
  851. NewUserName: adminInfo.RealName,
  852. CreateTime: time.Now(),
  853. })
  854. }
  855. // 修改创建人
  856. err = data_manage.ModifyChartInfoUserIdByOldUserId(oldUserIdList, adminInfo.AdminId, adminInfo.RealName)
  857. }
  858. case 6: // ETA表格
  859. sourceStrList = append(sourceStrList, "ETA表格")
  860. tmpList, tmpErr := excel.GetNoContentExcelListByUserId(oldUserIdList)
  861. if tmpErr != nil {
  862. err = tmpErr
  863. return
  864. }
  865. if len(tmpList) > 0 {
  866. for _, v := range tmpList {
  867. // 操作记录
  868. dataPermissionMoveRecordList = append(dataPermissionMoveRecordList, &data_manage_permission.DataPermissionMoveRecord{
  869. DataPermissionMoveRecordId: 0,
  870. Source: int32(source),
  871. SubSource: int32(v.Source),
  872. OpUniqueCode: uniqueCode,
  873. DataId: fmt.Sprint(v.ExcelInfoId),
  874. DataCode: fmt.Sprint(v.ExcelInfoId),
  875. DataName: v.ExcelName,
  876. OriginalUserId: int32(v.SysUserId),
  877. OriginalUserName: v.SysUserRealName,
  878. NewUserId: int32(adminInfo.AdminId),
  879. NewUserName: adminInfo.RealName,
  880. CreateTime: time.Now(),
  881. })
  882. }
  883. // 修改创建人
  884. err = excel.ModifyExcelInfoUserIdByOldUserId(oldUserIdList, adminInfo.AdminId, adminInfo.RealName)
  885. }
  886. default:
  887. }
  888. // 转移失败了那么就直接返回了
  889. if err != nil {
  890. return
  891. }
  892. }
  893. content += fmt.Sprintf("(%s)", strings.Join(sourceStrList, ","))
  894. // 添加资产转移的记录
  895. dataPermissionMessage := &data_manage_permission.DataPermissionMessage{
  896. DataPermissionMessageId: 0,
  897. SendUserId: int32(opUserId),
  898. ReceiveUserId: int32(adminInfo.AdminId),
  899. Content: title,
  900. Remark: content,
  901. OpType: 2,
  902. OpUniqueCode: uniqueCode,
  903. IsRead: 0,
  904. CreateTime: time.Now(),
  905. ModifyTime: time.Now(),
  906. }
  907. tmpErr := data_manage_permission.AddDataPermissionMoveRecord(dataPermissionMoveRecordList, dataPermissionMessage)
  908. // 失败的话,日志记录
  909. if tmpErr != nil {
  910. // 序列化结构体为 JSON 数据
  911. recordListJsonBytes, tmpErr2 := json.Marshal(dataPermissionMoveRecordList)
  912. if tmpErr2 != nil {
  913. utils.FileLog.Error(fmt.Sprintf("添加资产转移的记录失败:%s;list转json失败:;操作记录:%+v;消息记录:%+v", tmpErr.Error(), dataPermissionMoveRecordList, dataPermissionMessage))
  914. return
  915. }
  916. // 序列化结构体为 JSON 数据
  917. messageJsonBytes, tmpErr2 := json.Marshal(dataPermissionMessage)
  918. if tmpErr2 != nil {
  919. utils.FileLog.Error(fmt.Sprintf("添加资产转移的记录失败:%s;message转json失败:;操作记录:%+v;消息记录:%+v", tmpErr.Error(), dataPermissionMoveRecordList, dataPermissionMessage))
  920. return
  921. }
  922. utils.FileLog.Error(fmt.Sprintf("添加资产转移的记录失败:%s;操作记录:%s;消息记录:%s", tmpErr.Error(), string(recordListJsonBytes), string(messageJsonBytes)))
  923. }
  924. return
  925. }
  926. // MoveAllEdbChart
  927. // @Description: 通过原创建人转移指标/图表创建人
  928. // @author: Roc
  929. // @datetime 2024-03-26 15:11:12
  930. // @param sourceList []int 1:手工数据指标 2:钢联化工数据库 3:ETA指标库 4:ETA预测指标 5:图库 6:ETA表格
  931. // @param oldUserId []int
  932. // @param userId int
  933. // @param opUserId int
  934. // @return err error
  935. // @return errMsg string
  936. func MoveAllEdbChart(sourceList, oldUserIdList []int, userId, opUserId int) (err error, errMsg string) {
  937. adminInfo, err := system.GetSysAdminById(userId)
  938. if err != nil {
  939. return
  940. }
  941. // 操作记录
  942. dataPermissionMoveRecordList := make([]*data_manage_permission.DataPermissionMoveRecord, 0)
  943. uniqueCode := uuid.NewUUID().Hex32()
  944. title := `资产转移`
  945. content := `资产转入`
  946. sourceStrList := make([]string, 0)
  947. var isMoveManual, isMoveMysteelChemical, isMoveEdb, isMovePredictEdb, isMoveChart, isMoveExcel bool
  948. // 遍历需要转移的模块,1:手工数据指标 2:钢联化工数据库 3:ETA指标库 4:ETA预测指标 5:图库 6:ETA表格,并找出当前需要转移的资产
  949. for _, source := range sourceList {
  950. switch source {
  951. case 1: //手工数据指标
  952. sourceStrList = append(sourceStrList, "手工指标数据")
  953. tmpList, tmpErr := models.GetEdbinfoListByCodeListByUserId(oldUserIdList)
  954. if tmpErr != nil {
  955. err = tmpErr
  956. return
  957. }
  958. if len(tmpList) > 0 {
  959. for _, v := range tmpList {
  960. // 操作记录
  961. dataPermissionMoveRecordList = append(dataPermissionMoveRecordList, &data_manage_permission.DataPermissionMoveRecord{
  962. DataPermissionMoveRecordId: 0,
  963. Source: int32(source),
  964. SubSource: 0,
  965. OpUniqueCode: uniqueCode,
  966. DataId: v.TradeCode,
  967. DataCode: v.TradeCode,
  968. DataName: v.SecName,
  969. OriginalUserId: int32(v.UserId),
  970. OriginalUserName: v.UserName,
  971. NewUserId: int32(adminInfo.AdminId),
  972. NewUserName: adminInfo.RealName,
  973. CreateTime: time.Now(),
  974. })
  975. }
  976. isMoveManual = true
  977. }
  978. case 2: //钢联化工数据库
  979. sourceStrList = append(sourceStrList, "钢联化工数据库")
  980. tmpList, tmpErr := data_manage.GetMysteelChemicalIndexListByUserId(oldUserIdList)
  981. if tmpErr != nil {
  982. err = tmpErr
  983. return
  984. }
  985. if len(tmpList) > 0 {
  986. for _, v := range tmpList {
  987. //if v.SysUserId == newUserId {
  988. // errMsg = "新创建人不可和原创建人一致"
  989. // err = errors.New(errMsg)
  990. // return
  991. //}
  992. // 操作记录
  993. dataPermissionMoveRecordList = append(dataPermissionMoveRecordList, &data_manage_permission.DataPermissionMoveRecord{
  994. DataPermissionMoveRecordId: 0,
  995. Source: int32(source),
  996. SubSource: 0,
  997. OpUniqueCode: uniqueCode,
  998. DataId: fmt.Sprint(v.BaseFromMysteelChemicalIndexId),
  999. DataCode: v.IndexCode,
  1000. DataName: v.IndexName,
  1001. OriginalUserId: int32(v.SysUserId),
  1002. OriginalUserName: v.SysUserRealName,
  1003. NewUserId: int32(adminInfo.AdminId),
  1004. NewUserName: adminInfo.RealName,
  1005. CreateTime: time.Now(),
  1006. })
  1007. }
  1008. isMoveMysteelChemical = true
  1009. }
  1010. case 3: //ETA指标库
  1011. sourceStrList = append(sourceStrList, "ETA指标库")
  1012. edbInfoType := 0
  1013. tmpList, tmpErr := data_manage.GetEdbInfoListByUserId(oldUserIdList, edbInfoType)
  1014. if tmpErr != nil {
  1015. err = tmpErr
  1016. return
  1017. }
  1018. if len(tmpList) > 0 {
  1019. for _, v := range tmpList {
  1020. // 操作记录
  1021. dataPermissionMoveRecordList = append(dataPermissionMoveRecordList, &data_manage_permission.DataPermissionMoveRecord{
  1022. DataPermissionMoveRecordId: 0,
  1023. Source: int32(source),
  1024. SubSource: int32(edbInfoType),
  1025. OpUniqueCode: uniqueCode,
  1026. DataId: fmt.Sprint(v.EdbInfoId),
  1027. DataCode: v.EdbCode,
  1028. DataName: v.EdbName,
  1029. OriginalUserId: int32(v.SysUserId),
  1030. OriginalUserName: v.SysUserRealName,
  1031. NewUserId: int32(adminInfo.AdminId),
  1032. NewUserName: adminInfo.RealName,
  1033. CreateTime: time.Now(),
  1034. })
  1035. }
  1036. isMoveEdb = true
  1037. }
  1038. case 4: //ETA预测指标
  1039. sourceStrList = append(sourceStrList, "ETA预测指标")
  1040. edbInfoType := 1
  1041. tmpList, tmpErr := data_manage.GetEdbInfoListByUserId(oldUserIdList, edbInfoType)
  1042. if tmpErr != nil {
  1043. err = tmpErr
  1044. return
  1045. }
  1046. if len(tmpList) > 0 {
  1047. for _, v := range tmpList {
  1048. // 操作记录
  1049. dataPermissionMoveRecordList = append(dataPermissionMoveRecordList, &data_manage_permission.DataPermissionMoveRecord{
  1050. DataPermissionMoveRecordId: 0,
  1051. Source: int32(source),
  1052. SubSource: int32(edbInfoType),
  1053. OpUniqueCode: uniqueCode,
  1054. DataId: fmt.Sprint(v.EdbInfoId),
  1055. DataCode: v.EdbCode,
  1056. DataName: v.EdbName,
  1057. OriginalUserId: int32(v.SysUserId),
  1058. OriginalUserName: v.SysUserRealName,
  1059. NewUserId: int32(adminInfo.AdminId),
  1060. NewUserName: adminInfo.RealName,
  1061. CreateTime: time.Now(),
  1062. })
  1063. }
  1064. isMovePredictEdb = true
  1065. }
  1066. case 5: //ETA图库
  1067. sourceStrList = append(sourceStrList, "ETA图库")
  1068. // 只展示eta图库
  1069. subSource := utils.CHART_SOURCE_DEFAULT
  1070. tmpList, tmpErr := data_manage.GetChartInfoListByUserId(oldUserIdList, subSource)
  1071. if tmpErr != nil {
  1072. err = tmpErr
  1073. return
  1074. }
  1075. if len(tmpList) > 0 {
  1076. for _, v := range tmpList {
  1077. // 操作记录
  1078. dataPermissionMoveRecordList = append(dataPermissionMoveRecordList, &data_manage_permission.DataPermissionMoveRecord{
  1079. DataPermissionMoveRecordId: 0,
  1080. Source: int32(source),
  1081. SubSource: int32(subSource),
  1082. OpUniqueCode: uniqueCode,
  1083. DataId: fmt.Sprint(v.ChartInfoId),
  1084. DataCode: fmt.Sprint(v.ChartInfoId),
  1085. DataName: v.ChartName,
  1086. OriginalUserId: int32(v.SysUserId),
  1087. OriginalUserName: v.SysUserRealName,
  1088. NewUserId: int32(adminInfo.AdminId),
  1089. NewUserName: adminInfo.RealName,
  1090. CreateTime: time.Now(),
  1091. })
  1092. }
  1093. isMoveChart = true
  1094. }
  1095. case 6: // ETA表格
  1096. sourceStrList = append(sourceStrList, "ETA表格")
  1097. tmpList, tmpErr := excel.GetNoContentExcelListByUserId(oldUserIdList)
  1098. if tmpErr != nil {
  1099. err = tmpErr
  1100. return
  1101. }
  1102. if len(tmpList) > 0 {
  1103. for _, v := range tmpList {
  1104. // 操作记录
  1105. dataPermissionMoveRecordList = append(dataPermissionMoveRecordList, &data_manage_permission.DataPermissionMoveRecord{
  1106. DataPermissionMoveRecordId: 0,
  1107. Source: int32(source),
  1108. SubSource: int32(v.Source),
  1109. OpUniqueCode: uniqueCode,
  1110. DataId: fmt.Sprint(v.ExcelInfoId),
  1111. DataCode: fmt.Sprint(v.ExcelInfoId),
  1112. DataName: v.ExcelName,
  1113. OriginalUserId: int32(v.SysUserId),
  1114. OriginalUserName: v.SysUserRealName,
  1115. NewUserId: int32(adminInfo.AdminId),
  1116. NewUserName: adminInfo.RealName,
  1117. CreateTime: time.Now(),
  1118. })
  1119. }
  1120. isMoveExcel = true
  1121. }
  1122. default:
  1123. }
  1124. }
  1125. // 修改创建人
  1126. err = data_manage_permission.ModifyDataUserIdByOldUserId(oldUserIdList, adminInfo.AdminId, adminInfo.RealName, isMoveManual, isMoveMysteelChemical, isMoveEdb, isMovePredictEdb, isMoveChart, isMoveExcel)
  1127. // 转移失败了那么就直接返回了
  1128. if err != nil {
  1129. return
  1130. }
  1131. // 添加资产转移的记录
  1132. content += fmt.Sprintf("(%s)", strings.Join(sourceStrList, ","))
  1133. dataPermissionMessage := &data_manage_permission.DataPermissionMessage{
  1134. DataPermissionMessageId: 0,
  1135. SendUserId: int32(opUserId),
  1136. ReceiveUserId: int32(adminInfo.AdminId),
  1137. Content: title,
  1138. Remark: content,
  1139. OpType: 2,
  1140. OpUniqueCode: uniqueCode,
  1141. IsRead: 0,
  1142. CreateTime: time.Now(),
  1143. ModifyTime: time.Now(),
  1144. }
  1145. tmpErr := data_manage_permission.AddDataPermissionMoveRecord(dataPermissionMoveRecordList, dataPermissionMessage)
  1146. // 失败的话,日志记录
  1147. if tmpErr != nil {
  1148. // 序列化结构体为 JSON 数据
  1149. recordListJsonBytes, tmpErr2 := json.Marshal(dataPermissionMoveRecordList)
  1150. if tmpErr2 != nil {
  1151. utils.FileLog.Error(fmt.Sprintf("添加资产转移的记录失败:%s;list转json失败:;操作记录:%+v;消息记录:%+v", tmpErr.Error(), dataPermissionMoveRecordList, dataPermissionMessage))
  1152. return
  1153. }
  1154. // 序列化结构体为 JSON 数据
  1155. messageJsonBytes, tmpErr2 := json.Marshal(dataPermissionMessage)
  1156. if tmpErr2 != nil {
  1157. utils.FileLog.Error(fmt.Sprintf("添加资产转移的记录失败:%s;message转json失败:;操作记录:%+v;消息记录:%+v", tmpErr.Error(), dataPermissionMoveRecordList, dataPermissionMessage))
  1158. return
  1159. }
  1160. utils.FileLog.Error(fmt.Sprintf("添加资产转移的记录失败:%s;操作记录:%s;消息记录:%s", tmpErr.Error(), string(recordListJsonBytes), string(messageJsonBytes)))
  1161. }
  1162. return
  1163. }
  1164. // GetMoveEdbChartCount 获取待转移的指标/图表列表
  1165. // @param userId 用户
  1166. // @param countType 来源 :1:设置资产权限;2:设置数据权限
  1167. func GetMoveEdbChartCount(userId, countType int) (sourceMap map[int]int, err error) {
  1168. sourceMap = make(map[int]int)
  1169. {
  1170. // 手工数据指标
  1171. var condition string
  1172. var pars []interface{}
  1173. if userId > 0 {
  1174. condition += ` AND a.user_id = ? `
  1175. pars = append(pars, userId)
  1176. }
  1177. total, tmpErr := models.GetEdbinfoListCount(condition, pars, "", 0)
  1178. if tmpErr != nil {
  1179. err = tmpErr
  1180. return
  1181. }
  1182. sourceMap[1] = total
  1183. }
  1184. {
  1185. // 钢联化工数据库
  1186. var condition string
  1187. var pars []interface{}
  1188. if userId > 0 {
  1189. condition += ` AND sys_user_id = ? `
  1190. pars = append(pars, userId)
  1191. }
  1192. total, tmpErr := data_manage.GetMysteelChemicalIndexCount(condition, pars)
  1193. if tmpErr != nil {
  1194. err = tmpErr
  1195. return
  1196. }
  1197. sourceMap[2] = total
  1198. }
  1199. {
  1200. // ETA指标库
  1201. var condition string
  1202. var pars []interface{}
  1203. if userId > 0 {
  1204. condition += ` AND sys_user_id = ? `
  1205. pars = append(pars, userId)
  1206. }
  1207. //ETA指标库
  1208. condition += ` AND edb_info_type = ? `
  1209. pars = append(pars, 0)
  1210. total, tmpErr := data_manage.GetEdbInfoByConditionCount(condition, pars)
  1211. if tmpErr != nil {
  1212. err = tmpErr
  1213. return
  1214. }
  1215. sourceMap[3] = total
  1216. }
  1217. {
  1218. // ETA预测指标库
  1219. var condition string
  1220. var pars []interface{}
  1221. if userId > 0 {
  1222. condition += ` AND sys_user_id = ? `
  1223. pars = append(pars, userId)
  1224. }
  1225. //ETA预测指标
  1226. condition += ` AND edb_info_type = ? `
  1227. pars = append(pars, 1)
  1228. total, tmpErr := data_manage.GetEdbInfoByConditionCount(condition, pars)
  1229. if tmpErr != nil {
  1230. err = tmpErr
  1231. return
  1232. }
  1233. sourceMap[4] = total
  1234. }
  1235. {
  1236. // 图库
  1237. var condition string
  1238. var pars []interface{}
  1239. if userId > 0 {
  1240. condition += ` AND sys_user_id = ? `
  1241. pars = append(pars, userId)
  1242. }
  1243. total, tmpErr := data_manage.GetChartInfoCountByCondition(condition, pars)
  1244. if tmpErr != nil {
  1245. err = tmpErr
  1246. return
  1247. }
  1248. sourceMap[5] = total
  1249. }
  1250. {
  1251. // ETA表格
  1252. var condition string
  1253. var pars []interface{}
  1254. condition += ` AND is_delete = 0 `
  1255. if userId > 0 {
  1256. condition += ` AND sys_user_id = ? `
  1257. pars = append(pars, userId)
  1258. }
  1259. switch countType {
  1260. case 2:
  1261. condition += ` AND source in (2,3) `
  1262. default:
  1263. condition += ` AND source in (2,3,4) `
  1264. }
  1265. total, tmpErr := excel.GetExcelInfoCountByCondition(condition, pars)
  1266. if tmpErr != nil {
  1267. err = tmpErr
  1268. return
  1269. }
  1270. sourceMap[6] = total
  1271. }
  1272. return
  1273. }