package com.engine.organization.service.impl; import com.api.browser.bean.SearchConditionGroup; import com.api.browser.bean.SearchConditionItem; import com.api.browser.bean.SearchConditionOption; import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; import com.engine.organization.entity.detach.param.ManagerDetachParam; import com.engine.organization.entity.detach.po.ManagerDetachPO; import com.engine.organization.entity.detach.vo.ManagerDetachVO; import com.engine.organization.mapper.detach.ManagerDetachMapper; import com.engine.organization.mapper.employee.EmployeeMapper; import com.engine.organization.mapper.hrmresource.HrmResourceMapper; import com.engine.organization.service.ManagerDetachService; import com.engine.organization.util.HasRightUtil; import com.engine.organization.util.OrganizationFormItemUtil; import com.engine.organization.util.db.MapperProxyFactory; import com.engine.organization.util.relation.EcHrmRelationUtil; import org.apache.commons.lang3.StringUtils; import java.util.*; /** * @Author weaver_cl * @Description: * @Date 2022/10/21 * @Version V1.0 **/ public class ManagerDetachServiceImpl extends Service implements ManagerDetachService { private static final String RIGHT_NAME = "MangerDeatch:All"; public ManagerDetachMapper getMangeDetachMapper() { return MapperProxyFactory.getProxy(ManagerDetachMapper.class); } public HrmResourceMapper getHrmResourceMapper() { return MapperProxyFactory.getProxy(HrmResourceMapper.class); } @Override public Map listPage(Map params) { Map resultMap = new HashMap<>(); boolean hasRight = HasRightUtil.hasRight(user, RIGHT_NAME, true); resultMap.put("hasRight", hasRight); if (!hasRight) { return resultMap; } OrganizationWeaTable table = new OrganizationWeaTable<>(user, ManagerDetachVO.class); String sqlWhere = buildSqlWhere(params); table.setSqlwhere(sqlWhere); WeaResultMsg result = new WeaResultMsg(false); result.putAll(table.makeDataResult()); result.success(); resultMap.putAll(result.getResultMap()); return resultMap; } @Override public Map getForm(Integer id) { Map apiDatas = new HashMap<>(); List selectItems = new ArrayList<>(); List addGroups = new ArrayList<>(); List selectOptions = new ArrayList<>(); SearchConditionOption moduleOption = new SearchConditionOption("0", "组织管理",true); selectOptions.add(moduleOption); SearchConditionItem ecManager = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "管理员", "1", "ecManager", ""); ecManager.setRules("required|string"); SearchConditionItem ecRolelevel = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "可维护机构", "194", "ecRolelevel", ""); ecRolelevel.setRules("required|string"); SearchConditionItem module = OrganizationFormItemUtil.selectItem(user, selectOptions, 2, 16, 6, false, "可管理模块", "module"); module.setViewAttr(1); module.setDetailtype(2); module.setHasBorder(true); if (id != null) { //todo } selectItems.add(ecManager); selectItems.add(ecRolelevel); selectItems.add(module); addGroups.add(new SearchConditionGroup("基本信息", true, selectItems)); apiDatas.put("condition", addGroups); return apiDatas; } @Override public int deleteByIds(Collection ids) { return getMangeDetachMapper().deleteByIds(ids); } @Override public int save(ManagerDetachParam param) { ManagerDetachPO managerDetachPO = ManagerDetachPO.builder() .managerType(0) .ecManager(param.getEcManager()) .jclManager(String.valueOf(getHrmResourceMapper().getJclResourceId(param.getEcManager()))) .ecRolelevel(param.getEcRolelevel()) .jclRolelevel(EcHrmRelationUtil.getJclCompanyId(param.getEcRolelevel()) != null ? String.valueOf(EcHrmRelationUtil.getJclCompanyId(param.getEcRolelevel()).getId()) : null) .manageModule("组织管理") .creator((long)user.getUID()) .deleteType(0) .createTime(new Date()) .updateTime(new Date()) .build(); return getMangeDetachMapper().insertIgnoreNull(managerDetachPO); } @Override public int updateDetach(ManagerDetachParam param) { ManagerDetachPO managerDetachPO = ManagerDetachPO.builder() .ecManager(param.getEcManager()) .jclManager(String.valueOf(getHrmResourceMapper().getJclResourceId(param.getEcManager()))) .ecRolelevel(param.getEcRolelevel()) .jclRolelevel(EcHrmRelationUtil.getJclCompanyId(param.getEcRolelevel()) != null ? String.valueOf(EcHrmRelationUtil.getJclCompanyId(param.getEcRolelevel()).getId()) : null) .build(); return getMangeDetachMapper().updateDetach(managerDetachPO); } private String buildSqlWhere(Map params) { String sqlWhere = " where 1 = 1"; String lastName = (String) params.get("ecManager"); List resourceIds = MapperProxyFactory.getProxy(EmployeeMapper.class).getResourceIds(lastName); String ecManager = StringUtils.join(resourceIds,","); if (StringUtils.isNotBlank(ecManager)) { sqlWhere += " AND ec_manager in ("+ecManager+") "; } String ecRolelevel = (String) params.get("ecRolelevel"); if (StringUtils.isNotBlank(ecRolelevel)) { sqlWhere += " AND ec_rolelevel in ("+ecRolelevel+")"; } return sqlWhere; } }