package com.engine.organization.service.impl; import com.api.browser.bean.BrowserBean; import com.api.browser.bean.SearchConditionGroup; import com.api.browser.bean.SearchConditionItem; import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.TreeData; import com.engine.organization.entity.fieldset.vo.TypeTreeVO; import com.engine.organization.entity.hrmresource.po.ResourceItemPO; import com.engine.organization.entity.hrmresource.vo.ResourceBasicInfoVO; import com.engine.organization.mapper.hrmresource.ResourceBasicInfoMapper; import com.engine.organization.service.ResourceBasicInfoService; import com.engine.organization.util.HasRightUtil; import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.OrganizationFormItemUtil; import com.engine.organization.util.db.DBType; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.Util; import java.util.*; import java.util.stream.Collectors; /** * @Author weaver_cl * @Description: * @Date 2022/8/23 * @Version V1.0 **/ public class ResourceBasicInfoServiceImpl extends Service implements ResourceBasicInfoService { private static final String RIGHT_NAME = "ResourceBasicInfo:All"; private ResourceBasicInfoMapper getResourceBasicInfoMapper() { return MapperProxyFactory.getProxy(ResourceBasicInfoMapper.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,ResourceBasicInfoVO.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 List getTreeData() { ArrayList treeDataList = getResourceBasicInfoMapper().getTreeData(); TypeTreeVO build = TypeTreeVO.builder() .childs(treeDataList.stream().map(e -> TypeTreeVO.builder() .domid(e.getKey()) .key(Long.parseLong(e.getKey())) .name(e.getTitle()) .build()).collect(Collectors.toList())) .haschild(true) .domid("-1") .key(-1L) .name("全部类型").build(); List typeTreeVOS = new ArrayList<>(); typeTreeVOS.add(build); return typeTreeVOS; } @Override public List getForm(Map params) { String id = Util.null2String(params.get("id")); String fClassId = Util.null2String(params.get("fclassid")); List selectItems = new ArrayList<>(); List addGroups = new ArrayList<>(); SearchConditionItem resourceTypeItem = OrganizationFormItemUtil.browserItem(user, 2, 17, 3, false, "类型", "161", "fclassid", "resourceTypeBrowser"); resourceTypeItem.setRules("required|string"); if (StringUtils.isNotBlank(fClassId)) { BrowserBean browserBean = resourceTypeItem.getBrowserConditionParam(); List> maps = getResourceBasicInfoMapper().browserDatas(DeleteParam.builder().ids(fClassId).build().getIds()); browserBean.setReplaceDatas(maps); resourceTypeItem.setBrowserConditionParam(browserBean); } SearchConditionItem fNo = OrganizationFormItemUtil.inputItem(user, 2, 17, 3, 50, "编号", "fno"); fNo.setRules("required|string"); SearchConditionItem fName = OrganizationFormItemUtil.inputItem(user, 2, 17, 3, 50, "名称", "fname"); fName.setRules("required|string"); SearchConditionItem fMemo = OrganizationFormItemUtil.textareaItem(user, 2, 17, true, 2, 60, "说明", "fmemo"); if(StringUtils.isNotBlank(id)) { ResourceItemPO resourceItemPO = getResourceBasicInfoMapper().getResourceItemByFid(Integer.parseInt(id)); OrganizationAssert.notNull(resourceItemPO,"选择的数据不存在"); BrowserBean browserBean = resourceTypeItem.getBrowserConditionParam(); List> maps = getResourceBasicInfoMapper().browserDatas(DeleteParam.builder().ids(resourceItemPO.getFid().toString()).build().getIds()); browserBean.setReplaceDatas(maps); resourceTypeItem.setBrowserConditionParam(browserBean); fNo.setValue(resourceItemPO.getFno()); fNo.setViewAttr(1); fName.setValue(resourceItemPO.getFname()); fMemo.setValue(resourceItemPO.getFmemo()); } selectItems.add(resourceTypeItem); selectItems.add(fNo); selectItems.add(fName); selectItems.add(fMemo); addGroups.add(new SearchConditionGroup("基本信息", true, selectItems)); return addGroups; } @Override public int deletByIds(Collection ids) { OrganizationAssert.notEmpty(ids, "请选择要删除的数据"); return getResourceBasicInfoMapper().deleteByIds(ids); } @Override public int recoverByIds(Collection ids) { OrganizationAssert.notEmpty(ids, "请选择要恢复的数据"); return getResourceBasicInfoMapper().recoverByIds(ids); } @Override public int save(ResourceItemPO resourceItemPO) { List list = getResourceBasicInfoMapper().selectItemByFNo(resourceItemPO.getFno()); OrganizationAssert.isEmpty(list,"编号不允许重复"); return getResourceBasicInfoMapper().insertIgnoreNull(resourceItemPO); } @Override public ResourceItemPO selectById(Integer fid) { return null; } @Override public int update(ResourceItemPO resourceItemPO) { return 0; } private String buildSqlWhere(Map params) { DBType dbType = DBType.get(new RecordSet().getDBType()); String sqlWhere = " where 1 = 1 "; String fclassid = (String) params.get("fclassid"); if (StringUtils.isNotBlank(fclassid) && !"-1".equals(fclassid)) { sqlWhere += " AND t.fclassid = '" + fclassid + "'"; } String fno = (String) params.get("fno"); if (StringUtils.isNotBlank(fno)) { sqlWhere += " AND t.fno = '" + fno + "'"; } String fname = (String) params.get("fname"); if (StringUtils.isNotBlank(fname)) { sqlWhere += " AND t.fname " + dbType.like(fname); } return sqlWhere; } }