| | |
| | | |
| | | import com.consum.base.pojo.FinSysTenantParam; |
| | | import com.consum.model.po.FinSysTenant; |
| | | import com.iplatform.model.po.S_user_core; |
| | | import com.consum.model.po.FinSysTenantUser; |
| | | import com.walker.infrastructure.utils.CollectionUtils; |
| | | import com.walker.infrastructure.utils.DateUtils; |
| | | import com.walker.infrastructure.utils.StringUtils; |
| | | import com.walker.jdbc.service.BaseServiceImpl; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | /** |
| | | * @Description 系统机构 |
| | | * @Author 卢庆阳 |
| | | * @Date 2023/10/23 |
| | | */ |
| | | @Service |
| | | public class FinSysTenantServiceImpl extends BaseServiceImpl { |
| | | |
| | | private static final String QUERY_BY_PARENT_CODE = "SELECT * FROM fin_sys_tenant WHERE CODE = ?"; |
| | | private static final String QUERY_TREE_ALL = "select * from FIN_SYS_TENANT where is_delete = 0 and status = 1 order by parent_id, LV ASC"; |
| | | private static final String QUERY_TREE_BY_CODE = "SELECT * FROM FIN_SYS_TENANT "; |
| | | private static final String QUERY_LIST_BY_CITY_CODE = "SELECT ID, NAME, CODE, CASE WHEN LV = 2 THEN ID ELSE PARENT_ID END AS PARENT_ID, LV, TENANT_TYPE, BELONG_PROVINCE FROM FIN_SYS_TENANT "; |
| | | private static final String QUERY_LV2_ALL = "SELECT * FROM FIN_SYS_TENANT WHERE LV < 3 ORDER BY CODE ASC"; |
| | | |
| | | /** |
| | | * @Description 根据机构id查询机构 |
| | | * @Author 卢庆阳 |
| | | * @Date 2023/10/23 |
| | | * @Author :power |
| | | * @Date : 2023/7/20 20:41 获取区划信息 主要用于缓存 |
| | | */ |
| | | public FinSysTenant selectByTenantId(String code) { |
| | | List<FinSysTenant> select = this.select(QUERY_BY_PARENT_CODE, new Object[]{code}, new FinSysTenant()); |
| | | if (StringUtils.isEmptyList(select)) { |
| | | return null; |
| | | } else { |
| | | return select.get(0); |
| | | public FinSysTenant queryOneByCode(String code) { |
| | | FinSysTenant tenant = new FinSysTenant(); |
| | | tenant.setCode(code); |
| | | List<FinSysTenant> tenantList = this.select(tenant); |
| | | if (!StringUtils.isEmptyList(tenantList)) { |
| | | return tenantList.get(0); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | public List<FinSysTenant> queryForTree() { |
| | | // 展示全部节点 |
| | | return this.select(QUERY_TREE_ALL, new Object[]{}, new FinSysTenant()); |
| | | } |
| | | |
| | | /** |
| | | * 添加机构 |
| | | * @Author :power |
| | | * @Date : 2023/7/20 16:34 根据id 查询下级所有节点 地市查询自己 省查询所有地市 |
| | | */ |
| | | public List<FinSysTenant> queryTreeById(Long id, Integer lv) { |
| | | if (lv == 3) { |
| | | return new ArrayList<>(); |
| | | } |
| | | Map<String, Object> parameter = new HashMap<>(5); |
| | | StringBuilder sql = new StringBuilder(QUERY_TREE_BY_CODE); |
| | | if (id != null && lv == 1) { |
| | | sql.append(" WHERE PARENT_ID = :orgId OR ID = :orgId"); |
| | | parameter.put("orgId", id); |
| | | } |
| | | if (id != null && lv == 2) { |
| | | sql.append(" WHERE ID = :orgId"); |
| | | parameter.put("orgId", id); |
| | | } |
| | | return this.select(sql.toString(), parameter, new FinSysTenant()); |
| | | } |
| | | |
| | | /** |
| | | * @Author :power |
| | | * @Date : 2023/7/21 14:46 特殊数据 禁止其他接口使用 |
| | | */ |
| | | public Map<Long, List<FinSysTenant>> queryCountyByCityCode(Long id, Integer lv) { |
| | | Map<String, Object> parameter = new HashMap<>(5); |
| | | StringBuilder sql = new StringBuilder(QUERY_LIST_BY_CITY_CODE); |
| | | if (id != null && (lv == 2 || lv == 3)) { |
| | | sql.append(" WHERE LV >= 2 "); |
| | | sql.append(" AND (PARENT_ID = :orgId OR ID = :orgId ) "); |
| | | parameter.put("orgId", id); |
| | | } else { |
| | | sql.append(" WHERE LV > 1 "); |
| | | sql.append(" AND PARENT_ID IS NOT NULL "); |
| | | } |
| | | sql.append(" ORDER BY PARENT_ID ,ID "); |
| | | List<FinSysTenant> list = this.select(sql.toString(), parameter, new FinSysTenant()); |
| | | // return list.stream().filter(tenant -> Objects.nonNull(tenant.getParentId())).collect(Collectors.groupingBy(FinSysTenant::getParentId)); |
| | | return list.stream().collect(Collectors.groupingBy(FinSysTenant::getParentId)); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @Description 查询所有的市级带河南省的区划 |
| | | * @Author wh |
| | | * @Date 2023/7/20 15:29 |
| | | */ |
| | | public List<FinSysTenant> selectByLV2() { |
| | | return this.select(QUERY_LV2_ALL, new Object[]{}, new FinSysTenant()); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 删除 |
| | | * |
| | | * @author 卢庆阳 |
| | | * @date 2023/10/4 |
| | | */ |
| | | public int addSysTenant(FinSysTenantParam param, S_user_core currentUser, int lv) { |
| | | FinSysTenant sysTenant = new FinSysTenant(); |
| | | public int updateById(FinSysTenantParam param, FinSysTenantUser sysInfo) { |
| | | FinSysTenant finSysTenant = new FinSysTenant(); |
| | | finSysTenant.setTempId(param.getId()); |
| | | finSysTenant.setStatus(0); |
| | | finSysTenant.setIsDelete(1); |
| | | finSysTenant.setModified(DateUtils.getDate("yyyy-MM-dd HH:mm:ss")); |
| | | finSysTenant.setUpdateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); |
| | | finSysTenant.setUpdateBy(sysInfo.getUserName()); |
| | | return this.update(finSysTenant); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 添加机构 |
| | | * |
| | | * @author 卢庆阳 |
| | | * @date 2023/10/4 |
| | | */ |
| | | public int addFinSysTenant(FinSysTenantParam param, FinSysTenantUser sysInfo, int lv) { |
| | | FinSysTenant finSysTenant = new FinSysTenant(); |
| | | |
| | | //id和tempId |
| | | StringBuilder sql = new StringBuilder("SELECT max(id) FROM fin_sys_tenant WHERE 1=1"); |
| | |
| | | } else { |
| | | id = param.getParentId() * 1000 + 1; |
| | | } |
| | | sysTenant.setTempId(id); |
| | | sysTenant.setId(id); |
| | | sysTenant.setStatus(param.getStatus()); |
| | | finSysTenant.setTempId(id); |
| | | finSysTenant.setId(id); |
| | | finSysTenant.setStatus(param.getStatus()); |
| | | |
| | | sysTenant.setParentId(param.getParentId()); |
| | | sysTenant.setCode(param.getCode()); |
| | | sysTenant.setName(param.getName()); |
| | | sysTenant.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); |
| | | sysTenant.setSummary(param.getSummary()); |
| | | sysTenant.setCreateBy(currentUser.getUser_name()); |
| | | finSysTenant.setParentId(param.getParentId()); |
| | | finSysTenant.setCode(param.getCode()); |
| | | //设置详细地址及经纬度 |
| | | finSysTenant.setName(param.getName()); |
| | | finSysTenant.setCreateTime3(DateUtils.getDate("yyyy-MM-dd HH:mm:ss")); |
| | | finSysTenant.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); |
| | | finSysTenant.setSummary(param.getSummary()); |
| | | finSysTenant.setCreateBy(sysInfo.getUserName()); |
| | | //设置各层级id及名称 |
| | | sysTenant.setLv(lv); |
| | | setLvIdAndName(param, sysTenant, id, lv); |
| | | finSysTenant.setLv(lv); |
| | | setLvIdAndName(param, finSysTenant, id, lv); |
| | | |
| | | return this.insert(sysTenant); |
| | | return this.insert(finSysTenant); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @author 卢庆阳 |
| | | * @date 2023/10/4 |
| | | */ |
| | | private void setLvIdAndName(FinSysTenantParam param, FinSysTenant sysTenant, long id, int lv) { |
| | | private void setLvIdAndName(FinSysTenantParam param, FinSysTenant finSysTenant, long id, int lv) { |
| | | if (lv == 2) { //新增市级机构 |
| | | //查询上一级 - 省级 |
| | | FinSysTenant finSysTenant1 = this.get(new FinSysTenant(param.getParentId())); |
| | | if (finSysTenant1 != null) { |
| | | sysTenant.setLv1Id(finSysTenant1.getId()); |
| | | sysTenant.setLv1Name(finSysTenant1.getName()); |
| | | sysTenant.setLv2Id(id); |
| | | sysTenant.setLv2Name(param.getName()); |
| | | finSysTenant.setLv1Id(finSysTenant1.getId()); |
| | | finSysTenant.setLv1Name(finSysTenant1.getName()); |
| | | finSysTenant.setLv2Id(id); |
| | | finSysTenant.setLv2Name(param.getName()); |
| | | } |
| | | } else if (lv == 3) { //新增县级机构 |
| | | //查询上一级 - 市级 |
| | |
| | | //查询上一级 - 省级 |
| | | FinSysTenant finSysTenant1 = this.get(new FinSysTenant(finSysTenant2.getParentId())); |
| | | |
| | | sysTenant.setLv1Id(finSysTenant1.getId()); |
| | | sysTenant.setLv1Name(finSysTenant1.getName()); |
| | | sysTenant.setLv2Id(finSysTenant2.getId()); |
| | | sysTenant.setLv2Name(finSysTenant2.getName()); |
| | | sysTenant.setLv3Id(id); |
| | | sysTenant.setLv3Name(param.getName()); |
| | | finSysTenant.setLv1Id(finSysTenant1.getId()); |
| | | finSysTenant.setLv1Name(finSysTenant1.getName()); |
| | | finSysTenant.setLv2Id(finSysTenant2.getId()); |
| | | finSysTenant.setLv2Name(finSysTenant2.getName()); |
| | | finSysTenant.setLv3Id(id); |
| | | finSysTenant.setLv3Name(param.getName()); |
| | | } |
| | | } else if (lv == 4) { //新增支局机构 |
| | | //查询上一级 - 县级 |
| | |
| | | //查询上一级 - 省级 |
| | | FinSysTenant sysTenant1 = this.get(new FinSysTenant(finSysTenant2.getParentId())); |
| | | if (sysTenant1 != null) { |
| | | sysTenant.setLv1Id(sysTenant1.getId()); |
| | | sysTenant.setLv1Name(sysTenant1.getName()); |
| | | sysTenant.setLv2Id(finSysTenant2.getId()); |
| | | sysTenant.setLv2Name(finSysTenant2.getName()); |
| | | sysTenant.setLv3Id(finSysTenant3.getId()); |
| | | sysTenant.setLv3Name(finSysTenant3.getName()); |
| | | sysTenant.setLv4Id(id); |
| | | sysTenant.setLv4Name(param.getName()); |
| | | finSysTenant.setLv1Id(sysTenant1.getId()); |
| | | finSysTenant.setLv1Name(sysTenant1.getName()); |
| | | finSysTenant.setLv2Id(finSysTenant2.getId()); |
| | | finSysTenant.setLv2Name(finSysTenant2.getName()); |
| | | finSysTenant.setLv3Id(finSysTenant3.getId()); |
| | | finSysTenant.setLv3Name(finSysTenant3.getName()); |
| | | finSysTenant.setLv4Id(id); |
| | | finSysTenant.setLv4Name(param.getName()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 批量添加机构 |
| | | * |
| | | * @author jlq |
| | | * @date 2023/10/9 |
| | | */ |
| | | public void insertFinSysTenantBatch(List<FinSysTenantParam> params, FinSysTenantUser sysInfo, int lv) { |
| | | for (FinSysTenantParam param : params) { |
| | | addFinSysTenant(param, sysInfo, lv); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 编辑 |
| | | * |
| | | * @author 卢庆阳 |
| | | * @date 2023/10/6 |
| | | */ |
| | | public int updateFinSysTenant(FinSysTenant finSysTenant, FinSysTenantUser sysInfo) { |
| | | Integer lv = finSysTenant.getLv(); |
| | | if (lv == 1) { |
| | | finSysTenant.setLv1Name(finSysTenant.getName()); |
| | | } else if (lv == 2) { |
| | | finSysTenant.setLv2Name(finSysTenant.getName()); |
| | | } else { |
| | | finSysTenant.setLv3Name(finSysTenant.getName()); |
| | | } |
| | | finSysTenant.setModified(DateUtils.getDate("yyyy-MM-dd HH:mm:ss")); |
| | | finSysTenant.setUpdateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); |
| | | finSysTenant.setUpdateBy(sysInfo.getUserName()); |
| | | return this.update(finSysTenant); |
| | | } |
| | | |
| | | public FinSysTenant selectById(Long id) { |
| | | FinSysTenant tenant = new FinSysTenant(); |
| | | tenant.setTempId(id); |
| | | return this.get(tenant); |
| | | } |
| | | } |