Update backend/src/main/java/com/realnet/fnd/service1/SecmenuDetailService.java
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
// Added by Azmat for menucreation part
|
||||
package com.realnet.fnd.service1;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -27,109 +28,232 @@ public class SecmenuDetailService {
|
||||
private GrpMenuAccessRepository grpMenuAccessRepository;
|
||||
|
||||
public MenuDet customsecmenuadd(String tablename, String menuActionLink, Long menuId) {
|
||||
|
||||
MenuDet menuDet = new MenuDet();
|
||||
String origTableName = tablename.replaceAll("_", " ");
|
||||
|
||||
menuDet.setMenuId(menuId);
|
||||
menuDet.setItemSeq(8001l);
|
||||
menuDet.setMain_menu_icon_name(tablename);
|
||||
menuDet.setMenuItemDesc(origTableName);
|
||||
menuDet.setModuleName(tablename);
|
||||
menuDet.setMain_menu_action_name(menuActionLink);
|
||||
|
||||
menuDet.setStatus("Enable");
|
||||
|
||||
MenuDet save = menuDetRepository.save(menuDet);
|
||||
|
||||
sync(menuId, new GrpMenuAccess());
|
||||
|
||||
System.out.println(save.getMenuItemDesc() + " menu inserted");
|
||||
|
||||
return save;
|
||||
|
||||
}
|
||||
// sync service - with debug logs to prove Transactions/Masters grant to all groups
|
||||
public List<Object> sync(Long gmenuid, GrpMenuAccess gr) {
|
||||
List<Object> list = new ArrayList<>();
|
||||
MenuDet formenu = menuDetRepository.findById(gmenuid).orElseThrow(null);
|
||||
System.out.println("[SYNC] start gmenuid="+gmenuid+" formenu="+formenu.getMenuItemDesc()+" mId="+formenu.getMenuItemId());
|
||||
|
||||
// sync service
|
||||
public List<Object> sync(Long gmenuid, GrpMenuAccess gr) {
|
||||
|
||||
List<Object> list = new ArrayList<>();
|
||||
MenuDet formenu = menuDetRepository.findById(gmenuid).orElseThrow(null);
|
||||
|
||||
List<GrpMenuAccess> all = grpMenuAccessRepository.findByGrpAndMenuid1(formenu.getMenuItemId());
|
||||
|
||||
for (GrpMenuAccess a : all) {
|
||||
|
||||
a.setMenuItemId(formenu);
|
||||
a.setItemSeq(formenu.getItemSeq());
|
||||
a.setMenuItemDesc(formenu.getMenuItemDesc());
|
||||
a.setModuleName(formenu.getModuleName());
|
||||
a.setStatus(formenu.getStatus());
|
||||
a.setMain_menu_action_name(formenu.getMain_menu_action_name());
|
||||
a.setMain_menu_icon_name(formenu.getMain_menu_icon_name());
|
||||
a.setMenuId(formenu.getMenuId());
|
||||
GrpMenuAccess save = grpMenuAccessRepository.save(a);
|
||||
list.add(save);
|
||||
}
|
||||
|
||||
List<MenuDet> submenu = menuDetRepository.findAllSubmenuByMenuId(gmenuid);
|
||||
for (int i = 0; i < submenu.size(); i++) {
|
||||
MenuDet m = menuDetRepository.findById(submenu.get(i).getMenuItemId()).orElseThrow(null);
|
||||
List<GrpMenuAccess> li = grpMenuAccessRepository.findlist(m.getMenuItemId());
|
||||
|
||||
if (li.isEmpty()) {
|
||||
List<GrpMenuAccess> grp = grpMenuAccessRepository.findAllById(gmenuid);
|
||||
|
||||
for (GrpMenuAccess a : grp) {
|
||||
AppUserRole app = appUserRoleRepository.findById(a.getUsrGrp().getUsrGrp()).orElseThrow(null);
|
||||
gr.setUsrGrp(app);
|
||||
gr.setMenuItemId(m);
|
||||
|
||||
gr.setItemSeq(m.getItemSeq());
|
||||
gr.setMenuItemDesc(m.getMenuItemDesc());
|
||||
gr.setModuleName(m.getModuleName());
|
||||
gr.setStatus(m.getStatus());
|
||||
gr.setMain_menu_action_name(m.getMain_menu_action_name());
|
||||
gr.setMain_menu_icon_name(m.getMain_menu_icon_name());
|
||||
gr.setMenuId(m.getMenuId());
|
||||
|
||||
gr.setMCreate("true");
|
||||
gr.setMDelete("true");
|
||||
gr.setMEdit("true");
|
||||
gr.setMQuery("true");
|
||||
gr.setMVisible("true");
|
||||
gr.setIsdisable("true");
|
||||
gr.setMexport("true");
|
||||
|
||||
gr.setCreatedAt(new Date());
|
||||
gr.setUpdatedAt(new Date());
|
||||
|
||||
GrpMenuAccess save2 = grpMenuAccessRepository.save(gr);
|
||||
list.add(save2);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
else {
|
||||
for (GrpMenuAccess g : li) {
|
||||
|
||||
g.setMenuItemId(m);
|
||||
|
||||
g.setItemSeq(m.getItemSeq());
|
||||
g.setMenuItemDesc(m.getMenuItemDesc());
|
||||
g.setModuleName(m.getModuleName());
|
||||
g.setStatus(m.getStatus());
|
||||
g.setMain_menu_action_name(m.getMain_menu_action_name());
|
||||
g.setMain_menu_icon_name(m.getMain_menu_icon_name());
|
||||
g.setMenuId(m.getMenuId());
|
||||
|
||||
GrpMenuAccess save1 = grpMenuAccessRepository.save(g);
|
||||
list.add(save1);
|
||||
}
|
||||
}
|
||||
}
|
||||
return list;
|
||||
|
||||
}
|
||||
// Fix 1: ensure parent (1577/1601) for ALL groups (was only 1)
|
||||
List<AppUserRole> allRoles = appUserRoleRepository.findAll();
|
||||
System.out.println("[SYNC] allRoles="+allRoles.size());
|
||||
for (AppUserRole role : allRoles) {
|
||||
if (grpMenuAccessRepository.findById2(formenu.getMenuItemId(), role.getUsrGrp()) == null) {
|
||||
GrpMenuAccess ng = new GrpMenuAccess();
|
||||
ng.setUsrGrp(role); ng.setMenuItemId(formenu);
|
||||
ng.setItemSeq(formenu.getItemSeq()); ng.setMenuItemDesc(formenu.getMenuItemDesc());
|
||||
ng.setModuleName(formenu.getModuleName()); ng.setStatus(formenu.getStatus());
|
||||
ng.setMain_menu_action_name(formenu.getMain_menu_action_name());
|
||||
ng.setMain_menu_icon_name(formenu.getMain_menu_icon_name());
|
||||
ng.setMenuId(formenu.getMenuId());
|
||||
ng.setMCreate("true"); ng.setMDelete("true"); ng.setMEdit("true");
|
||||
ng.setMQuery("true"); ng.setMVisible("true"); ng.setIsdisable("true"); ng.setMexport("true");
|
||||
ng.setCreatedAt(new Date()); ng.setUpdatedAt(new Date());
|
||||
grpMenuAccessRepository.save(ng);
|
||||
System.out.println("[SYNC] parent grant to grp="+role.getUsrGrp());
|
||||
list.add(ng);
|
||||
}
|
||||
}
|
||||
List<GrpMenuAccess> all = grpMenuAccessRepository.findByGrpAndMenuid1(formenu.getMenuItemId());
|
||||
for (GrpMenuAccess a : all) {
|
||||
a.setMenuItemId(formenu);
|
||||
a.setItemSeq(formenu.getItemSeq());
|
||||
a.setMenuItemDesc(formenu.getMenuItemDesc());
|
||||
a.setModuleName(formenu.getModuleName());
|
||||
a.setStatus(formenu.getStatus());
|
||||
a.setMain_menu_action_name(formenu.getMain_menu_action_name());
|
||||
a.setMain_menu_icon_name(formenu.getMain_menu_icon_name());
|
||||
a.setMenuId(formenu.getMenuId());
|
||||
list.add(grpMenuAccessRepository.save(a));
|
||||
}
|
||||
|
||||
List<MenuDet> submenu = menuDetRepository.findAllSubmenuByMenuId(gmenuid);
|
||||
System.out.println("[SYNC] submenus="+submenu.size());
|
||||
for (int i = 0; i < submenu.size(); i++) {
|
||||
MenuDet m = menuDetRepository.findById(submenu.get(i).getMenuItemId()).orElseThrow(null);
|
||||
List<GrpMenuAccess> li = grpMenuAccessRepository.findlist(m.getMenuItemId());
|
||||
System.out.println("[SYNC] child "+m.getMenuItemDesc()+" mId="+m.getMenuItemId()+" li="+li.size());
|
||||
// Fix 2: ensure child for ALL groups (handles both li empty and else case)
|
||||
List<AppUserRole> allGroups = appUserRoleRepository.findAll();
|
||||
for (AppUserRole role : allGroups) {
|
||||
if (grpMenuAccessRepository.findById2(m.getMenuItemId(), role.getUsrGrp()) != null) continue;
|
||||
GrpMenuAccess ng = new GrpMenuAccess();
|
||||
ng.setUsrGrp(role); ng.setMenuItemId(m);
|
||||
ng.setItemSeq(m.getItemSeq()); ng.setMenuItemDesc(m.getMenuItemDesc());
|
||||
ng.setModuleName(m.getModuleName()); ng.setStatus(m.getStatus());
|
||||
ng.setMain_menu_action_name(m.getMain_menu_action_name());
|
||||
ng.setMain_menu_icon_name(m.getMain_menu_icon_name());
|
||||
ng.setMenuId(m.getMenuId());
|
||||
ng.setMCreate("true"); ng.setMDelete("true"); ng.setMEdit("true");
|
||||
ng.setMQuery("true"); ng.setMVisible("true"); ng.setIsdisable("true"); ng.setMexport("true");
|
||||
ng.setCreatedAt(new Date()); ng.setUpdatedAt(new Date());
|
||||
grpMenuAccessRepository.save(ng);
|
||||
System.out.println("[SYNC] child grant "+m.getMenuItemDesc()+" to grp="+role.getUsrGrp());
|
||||
list.add(ng);
|
||||
}
|
||||
for (GrpMenuAccess g : li) {
|
||||
g.setMenuItemId(m);
|
||||
g.setItemSeq(m.getItemSeq());
|
||||
g.setMenuItemDesc(m.getMenuItemDesc());
|
||||
g.setModuleName(m.getModuleName());
|
||||
g.setStatus(m.getStatus());
|
||||
g.setMain_menu_action_name(m.getMain_menu_action_name());
|
||||
g.setMain_menu_icon_name(m.getMain_menu_icon_name());
|
||||
g.setMenuId(m.getMenuId());
|
||||
list.add(grpMenuAccessRepository.save(g));
|
||||
}
|
||||
}
|
||||
System.out.println("[SYNC] done gmenuid="+gmenuid);
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
||||
// package com.realnet.fnd.service1;
|
||||
|
||||
// import java.util.ArrayList;
|
||||
// import java.util.Date;
|
||||
// import java.util.List;
|
||||
|
||||
// import org.springframework.beans.factory.annotation.Autowired;
|
||||
// import org.springframework.stereotype.Service;
|
||||
|
||||
// import com.realnet.fnd.entity1.GrpMenuAccess;
|
||||
// import com.realnet.fnd.entity1.MenuDet;
|
||||
// import com.realnet.fnd.repository1.GrpMenuAccessRepository;
|
||||
// import com.realnet.fnd.repository1.MenuDetRepository;
|
||||
// import com.realnet.users.entity1.AppUserRole;
|
||||
// import com.realnet.users.repository1.AppUserRoleRepository;
|
||||
|
||||
// @Service
|
||||
// public class SecmenuDetailService {
|
||||
|
||||
// @Autowired
|
||||
// private MenuDetRepository menuDetRepository;
|
||||
|
||||
// @Autowired
|
||||
// private AppUserRoleRepository appUserRoleRepository;
|
||||
|
||||
// @Autowired
|
||||
// private GrpMenuAccessRepository grpMenuAccessRepository;
|
||||
|
||||
// public MenuDet customsecmenuadd(String tablename, String menuActionLink, Long menuId) {
|
||||
|
||||
// MenuDet menuDet = new MenuDet();
|
||||
// String origTableName = tablename.replaceAll("_", " ");
|
||||
|
||||
// menuDet.setMenuId(menuId);
|
||||
// menuDet.setItemSeq(8001l);
|
||||
// menuDet.setMain_menu_icon_name(tablename);
|
||||
// menuDet.setMenuItemDesc(origTableName);
|
||||
// menuDet.setModuleName(tablename);
|
||||
// menuDet.setMain_menu_action_name(menuActionLink);
|
||||
|
||||
// menuDet.setStatus("Enable");
|
||||
|
||||
// MenuDet save = menuDetRepository.save(menuDet);
|
||||
|
||||
// sync(menuId, new GrpMenuAccess());
|
||||
|
||||
// System.out.println(save.getMenuItemDesc() + " menu inserted");
|
||||
|
||||
// return save;
|
||||
|
||||
// }
|
||||
|
||||
// // sync service
|
||||
// public List<Object> sync(Long gmenuid, GrpMenuAccess gr) {
|
||||
|
||||
// List<Object> list = new ArrayList<>();
|
||||
// MenuDet formenu = menuDetRepository.findById(gmenuid).orElseThrow(null);
|
||||
|
||||
// List<GrpMenuAccess> all = grpMenuAccessRepository.findByGrpAndMenuid1(formenu.getMenuItemId());
|
||||
|
||||
// for (GrpMenuAccess a : all) {
|
||||
|
||||
// a.setMenuItemId(formenu);
|
||||
// a.setItemSeq(formenu.getItemSeq());
|
||||
// a.setMenuItemDesc(formenu.getMenuItemDesc());
|
||||
// a.setModuleName(formenu.getModuleName());
|
||||
// a.setStatus(formenu.getStatus());
|
||||
// a.setMain_menu_action_name(formenu.getMain_menu_action_name());
|
||||
// a.setMain_menu_icon_name(formenu.getMain_menu_icon_name());
|
||||
// a.setMenuId(formenu.getMenuId());
|
||||
// GrpMenuAccess save = grpMenuAccessRepository.save(a);
|
||||
// list.add(save);
|
||||
// }
|
||||
|
||||
// List<MenuDet> submenu = menuDetRepository.findAllSubmenuByMenuId(gmenuid);
|
||||
// for (int i = 0; i < submenu.size(); i++) {
|
||||
// MenuDet m = menuDetRepository.findById(submenu.get(i).getMenuItemId()).orElseThrow(null);
|
||||
// List<GrpMenuAccess> li = grpMenuAccessRepository.findlist(m.getMenuItemId());
|
||||
|
||||
// if (li.isEmpty()) {
|
||||
// List<GrpMenuAccess> grp = grpMenuAccessRepository.findAllById(gmenuid);
|
||||
|
||||
// for (GrpMenuAccess a : grp) {
|
||||
// AppUserRole app = appUserRoleRepository.findById(a.getUsrGrp().getUsrGrp()).orElseThrow(null);
|
||||
// gr.setUsrGrp(app);
|
||||
// gr.setMenuItemId(m);
|
||||
|
||||
// gr.setItemSeq(m.getItemSeq());
|
||||
// gr.setMenuItemDesc(m.getMenuItemDesc());
|
||||
// gr.setModuleName(m.getModuleName());
|
||||
// gr.setStatus(m.getStatus());
|
||||
// gr.setMain_menu_action_name(m.getMain_menu_action_name());
|
||||
// gr.setMain_menu_icon_name(m.getMain_menu_icon_name());
|
||||
// gr.setMenuId(m.getMenuId());
|
||||
|
||||
// gr.setMCreate("true");
|
||||
// gr.setMDelete("true");
|
||||
// gr.setMEdit("true");
|
||||
// gr.setMQuery("true");
|
||||
// gr.setMVisible("true");
|
||||
// gr.setIsdisable("true");
|
||||
// gr.setMexport("true");
|
||||
|
||||
// gr.setCreatedAt(new Date());
|
||||
// gr.setUpdatedAt(new Date());
|
||||
|
||||
// GrpMenuAccess save2 = grpMenuAccessRepository.save(gr);
|
||||
// list.add(save2);
|
||||
// }
|
||||
|
||||
// }
|
||||
|
||||
// else {
|
||||
// for (GrpMenuAccess g : li) {
|
||||
|
||||
// g.setMenuItemId(m);
|
||||
|
||||
// g.setItemSeq(m.getItemSeq());
|
||||
// g.setMenuItemDesc(m.getMenuItemDesc());
|
||||
// g.setModuleName(m.getModuleName());
|
||||
// g.setStatus(m.getStatus());
|
||||
// g.setMain_menu_action_name(m.getMain_menu_action_name());
|
||||
// g.setMain_menu_icon_name(m.getMain_menu_icon_name());
|
||||
// g.setMenuId(m.getMenuId());
|
||||
|
||||
// GrpMenuAccess save1 = grpMenuAccessRepository.save(g);
|
||||
// list.add(save1);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// return list;
|
||||
|
||||
// }
|
||||
|
||||
// }
|
||||
|
||||
Reference in New Issue
Block a user