|
@@ -537,4 +537,60 @@ func EquityMergeSubjectAndObject(serviceList []*contractCustom.ContractServiceAn
|
|
|
mergeList = append(mergeList, otherList...)
|
|
|
}
|
|
|
return
|
|
|
+}
|
|
|
+
|
|
|
+// HandleEquityPermissionLookList 权益-权限展示的主客观合并处理
|
|
|
+func HandleEquityPermissionLookList(permissionLookList []*company_report_permission.PermissionLookList) []*company_report_permission.PermissionLookList {
|
|
|
+ if len(permissionLookList) <= 0 {
|
|
|
+ return permissionLookList
|
|
|
+ }
|
|
|
+ checkList := permissionLookList[0].CheckList
|
|
|
+ //fmt.Println(checkList)
|
|
|
+ permissionList := permissionLookList[0].Items
|
|
|
+ permissionLen := len(permissionList)
|
|
|
+ if len(checkList) <= 0 || permissionLen <= 0 {
|
|
|
+ return permissionLookList
|
|
|
+ }
|
|
|
+ // 若某个行业的主客观权限均被满足,则只留其中一个权限
|
|
|
+ // 1.取出每个行业对应的其中一个权限
|
|
|
+ industryName := []string{"医药", "消费", "科技", "智造"}
|
|
|
+ namePermissionMap := make(map[string]*company_report_permission.PermissionLookItem)
|
|
|
+ for i := 0; i < permissionLen; i++ {
|
|
|
+ pName := permissionList[i].PermissionName
|
|
|
+ if utils.InArrayByStr(industryName, pName) && namePermissionMap[pName] != nil {
|
|
|
+ namePermissionMap[pName] = permissionList[i]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 2.计算哪些行业主客观权限都有
|
|
|
+ countIndustryMap := make(map[string]int, 0)
|
|
|
+ for i := 0; i < permissionLen; i++ {
|
|
|
+ p := permissionList[i]
|
|
|
+ if utils.InArrayByStr(industryName, p.PermissionName) && utils.InArrayByInt(checkList, p.ChartPermissionId) {
|
|
|
+ countIndustryMap[p.PermissionName] += 1
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //fmt.Println(countIndustryMap)
|
|
|
+ // 3.重新组成一个权限列表
|
|
|
+ mergeIndustryMap := make(map[string]int, 0)
|
|
|
+ newPermissionList := make([]*company_report_permission.PermissionLookItem, 0)
|
|
|
+ for i := 0; i < permissionLen; i++ {
|
|
|
+ item := permissionList[i]
|
|
|
+ if utils.InArrayByStr(industryName, item.PermissionName) {
|
|
|
+ // 只有主客观之一, permissionName取remark
|
|
|
+ if countIndustryMap[item.PermissionName] == 1 {
|
|
|
+ item.PermissionName = item.Remark
|
|
|
+ newPermissionList = append(newPermissionList, item)
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ // 主客观都有
|
|
|
+ if countIndustryMap[item.PermissionName] > 1 && mergeIndustryMap[item.PermissionName] == 0 {
|
|
|
+ mergeIndustryMap[item.PermissionName] += 1
|
|
|
+ newPermissionList = append(newPermissionList, item)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ newPermissionList = append(newPermissionList, item)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ permissionLookList[0].Items = newPermissionList
|
|
|
+ return permissionLookList
|
|
|
}
|