package com.consum.base.service; import com.consum.model.po.FinSysOrg; import com.iplatform.model.po.S_dept; import com.walker.infrastructure.utils.StringUtils; import com.walker.jdbc.service.BaseServiceImpl; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; @Service public class FinOrgServiceImpl extends BaseServiceImpl { private static final String QUERY_SYS_ORG_BY_TENANT_ID = "select * from FIN_SYS_ORG where TENANT_ID = ?"; private static final String QUERY_TREE_ALL = "select * from FIN_SYS_ORG where org_type = ? order by parent_id, LV ASC"; private static final String QUERY_TREE_ONE = "select * from FIN_SYS_ORG where org_type = ? and parent_id = ? order by parent_id, LV ASC"; private static final String QUERY_SYS_ORG_BY_ORGID = "SELECT * FROM FIN_SYS_ORG WHERE PARENT_ID IN (\n" + "SELECT PARENT_ID FROM FIN_SYS_ORG where ID = ? AND ORG_TYPE = ?) ORDER BY ORG_CODE ASC"; /** * 根据机构代码,查询唯一机构对象。 * @param orgCode * @return * @date 2023-07-05 */ public FinSysOrg queryOneByCode(String orgCode){ FinSysOrg org = new FinSysOrg(); org.setOrgCode(orgCode); List orgList = this.select(org); if(!StringUtils.isEmptyList(orgList)){ return orgList.get(0); } return null; } /** * 批量写入新的机构集合。 * @param finSysOrgList * @date 2023-07-05 */ public List execBatchInsertOrgList(List finSysOrgList){ if(StringUtils.isEmptyList(finSysOrgList)){ return null; } List deptList = new ArrayList<>(finSysOrgList.size()); for(FinSysOrg e : finSysOrgList){ deptList.add(this.acquirePlatformDept(e)); } this.insertBatch(deptList); this.insertBatch(finSysOrgList); return deptList; } private S_dept acquirePlatformDept(FinSysOrg finSysOrg){ S_dept dept = new S_dept(); dept.setId(Long.valueOf(finSysOrg.getId())); // FinSysOrg 的id 和partentId 这里改成String类型了 dept.setDept_name(finSysOrg.getName()); dept.setOrder_num(finSysOrg.getOrderNum()); dept.setOrg_type(finSysOrg.getOrgType()); dept.setCreate_time(finSysOrg.getCreateTime()); if(finSysOrg.getParentId() != null){ //if(finSysOrg.getParentId().longValue() == 0){ if(finSysOrg.getParentId() == null){ // 父节点不存在, dept.setAncestors("0"); } else { dept.setAncestors(String.valueOf(finSysOrg.getParentId())); } dept.setOrg_id(Long.valueOf(finSysOrg.getParentId())); dept.setParent_id(Long.valueOf(finSysOrg.getParentId())); } else { dept.setAncestors("0"); dept.setOrg_id(dept.getId()); dept.setParent_id(0L); } return dept; } /** * @Description 查询机构树 * @Author wh * @Date 2023/7/11 11:32 */ public List queryOrgListForTree(int orgType, Long parentId) { if (parentId <= 0) { // 展示全部节点 return this.select(QUERY_TREE_ALL, new Object[]{orgType}, new FinSysOrg()); } else { // 显示指定下级 return this.select(QUERY_TREE_ONE, new Object[]{orgType, parentId}, new FinSysOrg()); } } public List getAllSysOrgByPhone(String orgId, Integer orgType) { return this.select(QUERY_SYS_ORG_BY_ORGID, new Object[]{orgId, orgType}, new FinSysOrg()); } public List getByTenantId(String tenantId) { return this.select(QUERY_SYS_ORG_BY_TENANT_ID, new Object[]{tenantId}, new FinSysOrg()); } }