Update backend/src/main/java/com/realnet/fnd/service1/SecmenuDetailService.java

This commit is contained in:
2026-08-30 12:18:53 +00:00
parent 03f75b7ca3
commit aa606a2f68
@@ -1,3 +1,4 @@
// Added by Azmat for menucreation part
package com.realnet.fnd.service1;
import java.util.ArrayList;
@@ -27,39 +28,48 @@ 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
public List<Object> sync(Long gmenuid, GrpMenuAccess gr) {
// 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());
// 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());
@@ -68,53 +78,35 @@ public class SecmenuDetailService {
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.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());
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);
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);
}
}
else {
for (GrpMenuAccess g : li) {
g.setMenuItemId(m);
g.setItemSeq(m.getItemSeq());
g.setMenuItemDesc(m.getMenuItemDesc());
g.setModuleName(m.getModuleName());
@@ -122,14 +114,146 @@ public class SecmenuDetailService {
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);
}
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;
// }
// }