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;
|
package com.realnet.fnd.service1;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -27,109 +28,232 @@ public class SecmenuDetailService {
|
|||||||
private GrpMenuAccessRepository grpMenuAccessRepository;
|
private GrpMenuAccessRepository grpMenuAccessRepository;
|
||||||
|
|
||||||
public MenuDet customsecmenuadd(String tablename, String menuActionLink, Long menuId) {
|
public MenuDet customsecmenuadd(String tablename, String menuActionLink, Long menuId) {
|
||||||
|
|
||||||
MenuDet menuDet = new MenuDet();
|
MenuDet menuDet = new MenuDet();
|
||||||
String origTableName = tablename.replaceAll("_", " ");
|
String origTableName = tablename.replaceAll("_", " ");
|
||||||
|
|
||||||
menuDet.setMenuId(menuId);
|
menuDet.setMenuId(menuId);
|
||||||
menuDet.setItemSeq(8001l);
|
menuDet.setItemSeq(8001l);
|
||||||
menuDet.setMain_menu_icon_name(tablename);
|
menuDet.setMain_menu_icon_name(tablename);
|
||||||
menuDet.setMenuItemDesc(origTableName);
|
menuDet.setMenuItemDesc(origTableName);
|
||||||
menuDet.setModuleName(tablename);
|
menuDet.setModuleName(tablename);
|
||||||
menuDet.setMain_menu_action_name(menuActionLink);
|
menuDet.setMain_menu_action_name(menuActionLink);
|
||||||
|
|
||||||
menuDet.setStatus("Enable");
|
menuDet.setStatus("Enable");
|
||||||
|
|
||||||
MenuDet save = menuDetRepository.save(menuDet);
|
MenuDet save = menuDetRepository.save(menuDet);
|
||||||
|
|
||||||
sync(menuId, new GrpMenuAccess());
|
sync(menuId, new GrpMenuAccess());
|
||||||
|
|
||||||
System.out.println(save.getMenuItemDesc() + " menu inserted");
|
System.out.println(save.getMenuItemDesc() + " menu inserted");
|
||||||
|
|
||||||
return save;
|
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
|
// Fix 1: ensure parent (1577/1601) for ALL groups (was only 1)
|
||||||
public List<Object> sync(Long gmenuid, GrpMenuAccess gr) {
|
List<AppUserRole> allRoles = appUserRoleRepository.findAll();
|
||||||
|
System.out.println("[SYNC] allRoles="+allRoles.size());
|
||||||
List<Object> list = new ArrayList<>();
|
for (AppUserRole role : allRoles) {
|
||||||
MenuDet formenu = menuDetRepository.findById(gmenuid).orElseThrow(null);
|
if (grpMenuAccessRepository.findById2(formenu.getMenuItemId(), role.getUsrGrp()) == null) {
|
||||||
|
GrpMenuAccess ng = new GrpMenuAccess();
|
||||||
List<GrpMenuAccess> all = grpMenuAccessRepository.findByGrpAndMenuid1(formenu.getMenuItemId());
|
ng.setUsrGrp(role); ng.setMenuItemId(formenu);
|
||||||
|
ng.setItemSeq(formenu.getItemSeq()); ng.setMenuItemDesc(formenu.getMenuItemDesc());
|
||||||
for (GrpMenuAccess a : all) {
|
ng.setModuleName(formenu.getModuleName()); ng.setStatus(formenu.getStatus());
|
||||||
|
ng.setMain_menu_action_name(formenu.getMain_menu_action_name());
|
||||||
a.setMenuItemId(formenu);
|
ng.setMain_menu_icon_name(formenu.getMain_menu_icon_name());
|
||||||
a.setItemSeq(formenu.getItemSeq());
|
ng.setMenuId(formenu.getMenuId());
|
||||||
a.setMenuItemDesc(formenu.getMenuItemDesc());
|
ng.setMCreate("true"); ng.setMDelete("true"); ng.setMEdit("true");
|
||||||
a.setModuleName(formenu.getModuleName());
|
ng.setMQuery("true"); ng.setMVisible("true"); ng.setIsdisable("true"); ng.setMexport("true");
|
||||||
a.setStatus(formenu.getStatus());
|
ng.setCreatedAt(new Date()); ng.setUpdatedAt(new Date());
|
||||||
a.setMain_menu_action_name(formenu.getMain_menu_action_name());
|
grpMenuAccessRepository.save(ng);
|
||||||
a.setMain_menu_icon_name(formenu.getMain_menu_icon_name());
|
System.out.println("[SYNC] parent grant to grp="+role.getUsrGrp());
|
||||||
a.setMenuId(formenu.getMenuId());
|
list.add(ng);
|
||||||
GrpMenuAccess save = grpMenuAccessRepository.save(a);
|
}
|
||||||
list.add(save);
|
}
|
||||||
}
|
List<GrpMenuAccess> all = grpMenuAccessRepository.findByGrpAndMenuid1(formenu.getMenuItemId());
|
||||||
|
for (GrpMenuAccess a : all) {
|
||||||
List<MenuDet> submenu = menuDetRepository.findAllSubmenuByMenuId(gmenuid);
|
a.setMenuItemId(formenu);
|
||||||
for (int i = 0; i < submenu.size(); i++) {
|
a.setItemSeq(formenu.getItemSeq());
|
||||||
MenuDet m = menuDetRepository.findById(submenu.get(i).getMenuItemId()).orElseThrow(null);
|
a.setMenuItemDesc(formenu.getMenuItemDesc());
|
||||||
List<GrpMenuAccess> li = grpMenuAccessRepository.findlist(m.getMenuItemId());
|
a.setModuleName(formenu.getModuleName());
|
||||||
|
a.setStatus(formenu.getStatus());
|
||||||
if (li.isEmpty()) {
|
a.setMain_menu_action_name(formenu.getMain_menu_action_name());
|
||||||
List<GrpMenuAccess> grp = grpMenuAccessRepository.findAllById(gmenuid);
|
a.setMain_menu_icon_name(formenu.getMain_menu_icon_name());
|
||||||
|
a.setMenuId(formenu.getMenuId());
|
||||||
for (GrpMenuAccess a : grp) {
|
list.add(grpMenuAccessRepository.save(a));
|
||||||
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;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
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