package com.consum.base.service.impl; import java.util.HashMap; import java.util.List; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import com.consum.base.Constants; import com.consum.base.core.utils.IdUtil; import com.consum.base.pojo.FinSysTenantDepartmentParam; import com.consum.base.service.FinSysTenantDepartmentService; import com.consum.model.po.FinSysTenantDepartment; import com.consum.model.po.FinSysTenantUser; import com.walker.db.page.GenericPager; import com.walker.infrastructure.utils.DateUtils; import com.walker.infrastructure.utils.StringUtils; import com.walker.jdbc.service.BaseServiceImpl; /** * @Description 部门管理 * @Author 卢庆阳 * @Date 2023/10/26 */ @Service public class FinSysTenantDepartmentServiceImpl extends BaseServiceImpl implements FinSysTenantDepartmentService { /** * @Description 根据 部门名称和机构id 查询部门 * @Author 卢庆阳 * @Date 2023/10/26 */ @Override public FinSysTenantDepartment getTenantDepartment(String name, Long tenantId, String code) { StringBuilder sql = new StringBuilder("SELECT * FROM fin_sys_tenant_department WHERE 1 = 1 "); HashMap paramts = new HashMap<>(); // 部门名称 if (!StringUtils.isEmpty(name)) { sql.append(" and name =:name "); paramts.put("name", name); } // 机构id if (tenantId != null) { sql.append(" and TENANT_ID =:tenantId "); paramts.put("tenantId", tenantId); } if (!StringUtils.isEmpty(code)) { sql.append("and CODE = :code "); paramts.put("code", code); } sql.append("and status = 1"); return this.get(sql.toString(), paramts, new FinSysTenantDepartment()); } /** * @Description 新增 * @Author 卢庆阳 * @Date 2023/10/26 */ @Override public int add(FinSysTenantDepartmentParam param, FinSysTenantUser sysInfo) { FinSysTenantDepartment department = new FinSysTenantDepartment(); BeanUtils.copyProperties(param, department); department.setId(IdUtil.generateId()); // 创建人姓名 department.setCreateBy(sysInfo.getUserName()); // 创建时间 department.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); return this.insert(department); } /** * @Description 部门列表查询 * @Author 卢庆阳 * @Date 2023/10/26 */ @Override public GenericPager queryList(FinSysTenantDepartmentParam param) { StringBuilder sql = new StringBuilder("SELECT * FROM fin_sys_tenant_department WHERE 1 = 1 and is_delete = 0 "); HashMap paramts = new HashMap<>(); // 部门名称 if (!StringUtils.isEmpty(param.getName())) { sql.append(" and name like:name "); paramts.put("name", StringUtils.CHAR_PERCENT + param.getName() + StringUtils.CHAR_PERCENT); } // 编号 if (!StringUtils.isEmpty(param.getCode())) { sql.append(" and code like:code "); paramts.put("code", StringUtils.CHAR_PERCENT + param.getCode() + StringUtils.CHAR_PERCENT); } // 状态 if (param.getStatus() != null) { sql.append(" and status =:status "); paramts.put("status", param.getStatus()); } // 机构id if (param.getTenantId() != null) { sql.append(" and TENANT_ID =:tenantId "); paramts.put("tenantId", param.getTenantId()); } else { sql.append(" and TENANT_ID = 100 "); } sql.append(" ORDER BY ORDER_NUM,CREATE_TIME DESC "); return selectSplit(sql.toString(), paramts, new FinSysTenantDepartment()); } /** * @Description 编辑 * @Author 卢庆阳 * @Date 2023/10/26 */ @Override public int updateFinSysTenantDepartment(FinSysTenantDepartment department, FinSysTenantUser sysInfo) { department.setUpdateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); department.setUpdateBy(sysInfo.getUserName()); return this.update(department); } /** * 根据部门id查询部门详情 * * @author 卢庆阳 * @Date 2023/10/26 */ @Override public FinSysTenantDepartment getById(Long id) { return this.get(new FinSysTenantDepartment(id)); } /** * @param department * @param currentUser * @Description 根据id删除部门 * @Author 卢庆阳 * @Date 2023/10/26 */ @Override public int updateById(FinSysTenantDepartment department, FinSysTenantUser currentUser) { department.setIsDelete(Constants.IS_DELETE_YES); // 删除时间 department.setUpdateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); // 删除人姓名 department.setUpdateBy(currentUser.getUserName()); return this.update(department); } /** * 根据机构id查询部门 * * @param agencyId * @return */ @Override public List getByTenantId(Long agencyId) { StringBuilder sql = new StringBuilder("SELECT * FROM fin_sys_tenant_department WHERE 1 = 1 and is_delete = 0 "); HashMap paramts = new HashMap<>(); // 机构id if (agencyId != null) { sql.append(" and TENANT_ID =:tenantId "); paramts.put("tenantId", agencyId); } return this.select(sql.toString(), paramts, new FinSysTenantDepartment()); } @Override public FinSysTenantDepartment getByTenantIdAndName(Long agencyId, String name) { StringBuilder sql = new StringBuilder("SELECT * FROM fin_sys_tenant_department WHERE 1 = 1 and is_delete = 0 "); HashMap paramts = new HashMap<>(); // 机构id if (agencyId != null) { sql.append(" and TENANT_ID =:tenantId "); paramts.put("tenantId", agencyId); } // name if (name != null) { sql.append(" and name =:name "); paramts.put("name", name); } List select = this.select(sql.toString(), paramts, new FinSysTenantDepartment()); if(select!=null && select.size()>0){ return select.get(0); } return null; } @Override public List queryDataList(FinSysTenantDepartmentParam param) { StringBuilder sql = new StringBuilder("SELECT * FROM fin_sys_tenant_department WHERE 1 = 1"); HashMap paramts = new HashMap<>(); // 编号 if (!StringUtils.isEmpty(param.getCode())) { sql.append(" and code =:code "); paramts.put("code", param.getCode()); } List select = this.select(sql.toString(), paramts, new FinSysTenantDepartment()); return select; } /** * 根据部门和机构名查找对应的部门信息 * @param tenantName * @param departmentName * @return */ @Override public FinSysTenantDepartment queryIdByTenDepName(String tenantName, String departmentName ) { StringBuilder sql = new StringBuilder("SELECT * FROM fin_sys_tenant_department \n" + "WHERE TENANT_ID = ( SELECT id FROM fin_sys_tenant WHERE NAME = '"+tenantName+"' LIMIT 1 ) AND NAME = '"+departmentName+"' LIMIT 1 "); HashMap paramts = new HashMap<>(); return this.get(sql.toString(), paramts, new FinSysTenantDepartment()); } }