src/main/java/org/springblade/modules/property/controller/PropertyCompanyController.java
@@ -28,6 +28,7 @@ import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springblade.modules.system.service.IDeptService; import org.springframework.web.bind.annotation.*; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.modules.property.entity.PropertyCompanyEntity; @@ -35,6 +36,8 @@ import org.springblade.modules.property.wrapper.PropertyCompanyWrapper; import org.springblade.modules.property.service.IPropertyCompanyService; import org.springblade.core.boot.ctrl.BladeController; import java.util.List; /** * 物业公司 控制器 @@ -121,13 +124,22 @@ } /** * 物业公司 自定义新增或修改 */ @PostMapping("/saveOrUpdate") public R saveOrUpdate(@Valid @RequestBody PropertyCompanyEntity propertyCompany) { return R.status(propertyCompanyService.saveOrUpdatePropertyCompany(propertyCompany)); } /** * 物业公司 删除 */ @PostMapping("/remove") @ApiOperationSupport(order = 7) @ApiOperation(value = "逻辑删除", notes = "传入ids") public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { return R.status(propertyCompanyService.removeByIds(Func.toIntList(ids))); List<Integer> toIntList = Func.toIntList(ids); return R.status(propertyCompanyService.deleteByIds(toIntList)); } /** src/main/java/org/springblade/modules/property/entity/PropertyCapitalApplyEntity.java
@@ -81,7 +81,7 @@ * 分摊方式 */ @ApiModelProperty(value = "分摊方式") private Integer allocationWay; private String allocationWay; /** * 预算总金额 */ src/main/java/org/springblade/modules/property/mapper/PropertyCapitalApplyMapper.java
@@ -16,6 +16,7 @@ */ package org.springblade.modules.property.mapper; import org.apache.ibatis.annotations.Param; import org.springblade.modules.property.entity.PropertyCapitalApplyEntity; import org.springblade.modules.property.vo.PropertyCapitalApplyVO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -37,7 +38,8 @@ * @param propertyCapitalApply * @return */ List<PropertyCapitalApplyVO> selectPropertyCapitalApplyPage(IPage page, PropertyCapitalApplyVO propertyCapitalApply); List<PropertyCapitalApplyVO> selectPropertyCapitalApplyPage(IPage page, @Param("propertyCapitalApply") PropertyCapitalApplyVO propertyCapitalApply); } src/main/java/org/springblade/modules/property/mapper/PropertyCapitalApplyMapper.xml
@@ -27,9 +27,18 @@ <result column="is_deleted" property="isDeleted"/> </resultMap> <!--自定义分页查询--> <select id="selectPropertyCapitalApplyPage" resultMap="propertyCapitalApplyResultMap"> select * from jczz_property_capital_apply where is_deleted = 0 <if test="propertyCapitalApply.districtId!=null"> and district_id = #{propertyCapitalApply.districtId} </if> <if test="propertyCapitalApply.name!=null and propertyCapitalApply.name!=''"> and name like concat('%',#{propertyCapitalApply.name},'%') </if> <if test="propertyCapitalApply.linkman!=null and propertyCapitalApply.linkman!=''"> and linkman like concat('%',#{propertyCapitalApply.linkman},'%') </if> </select> src/main/java/org/springblade/modules/property/mapper/PropertyCompanyMapper.java
@@ -55,4 +55,11 @@ * @return */ List<Map<Long,String>> getUserByPropertyCompany(@Param("propertyCompany") PropertyCompanyVO propertyCompany); /** * 查询对应的机构id集合 * @param toIntList * @return */ List<Long> getDeptListByCompanyId(@Param("list") List<Integer> toIntList); } src/main/java/org/springblade/modules/property/mapper/PropertyCompanyMapper.xml
@@ -46,5 +46,22 @@ and jpc.id = #{propertyCompany.id} </select> <!--查询对应的机构id集合--> <select id="getDeptListByCompanyId" resultType="java.lang.Long"> select dept_id from jczz_property_company jpc where is_deleted = 0 <choose> <when test="list != null and list.size()>0"> and id in <foreach collection="list" item="id" separator ="," open="(" close=")"> #{id} </foreach> </when> <otherwise> and id in ('') </otherwise> </choose> </select> </mapper> src/main/java/org/springblade/modules/property/service/IPropertyCompanyService.java
@@ -22,6 +22,8 @@ import org.springblade.core.mp.base.BaseService; import com.baomidou.mybatisplus.core.metadata.IPage; import java.util.List; /** * 物业公司 服务类 * @@ -51,4 +53,14 @@ * 物业公司查询对应的用户信息 */ Object getUserByPropertyCompany(PropertyCompanyVO propertyCompany); /** * 物业公司 自定义新增或修改 */ boolean saveOrUpdatePropertyCompany(PropertyCompanyEntity propertyCompany); /** * 物业公司 删除 */ boolean deleteByIds(List<Integer> toIntList); } src/main/java/org/springblade/modules/property/service/impl/PropertyCompanyServiceImpl.java
@@ -16,14 +16,21 @@ */ package org.springblade.modules.property.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import liquibase.pro.packaged.D; import liquibase.pro.packaged.P; import org.springblade.modules.property.entity.PropertyCompanyEntity; import org.springblade.modules.property.vo.PropertyCompanyVO; import org.springblade.modules.property.mapper.PropertyCompanyMapper; import org.springblade.modules.property.service.IPropertyCompanyService; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.modules.system.entity.Dept; import org.springblade.modules.system.service.IDeptService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springframework.transaction.annotation.Transactional; import java.util.List; @@ -35,6 +42,9 @@ */ @Service public class PropertyCompanyServiceImpl extends ServiceImpl<PropertyCompanyMapper, PropertyCompanyEntity> implements IPropertyCompanyService { @Autowired private IDeptService deptService; /** * 自定义分页 @@ -67,4 +77,48 @@ public Object getUserByPropertyCompany(PropertyCompanyVO propertyCompany) { return baseMapper.getUserByPropertyCompany(propertyCompany); } /** * 物业公司 自定义新增或修改 */ @Override @Transactional(rollbackFor = Exception.class) public boolean saveOrUpdatePropertyCompany(PropertyCompanyEntity propertyCompany) { boolean flag = false; Dept dept = new Dept(); dept.setDeptName(propertyCompany.getName()); dept.setFullName(propertyCompany.getName()); // 判断新增还是修改 if (null != propertyCompany.getId()){ // 修改 updateById(propertyCompany); // 修改住址机构信息 dept.setId(propertyCompany.getDeptId()); flag = deptService.updateById(dept); }else { // 查询父级id QueryWrapper<Dept> wrapper = new QueryWrapper<>(); wrapper.eq("is_deleted",0).eq("dept_name","物业公司"); Dept parentDept = deptService.getOne(wrapper); dept.setParentId(parentDept.getId()); // 新增机构 flag = deptService.save(dept); // 新增物业公司 propertyCompany.setDeptId(dept.getId()); flag = save(propertyCompany); } return flag; } /** * 物业公司 删除 */ @Transactional(rollbackFor = Exception.class) @Override public boolean deleteByIds(List<Integer> toIntList) { // 先查询对应的机构id集合 List<Long> deptIds = baseMapper.getDeptListByCompanyId(toIntList); // 删除机构,删除物业公司 return removeByIds(toIntList) && deptService.removeByIds(deptIds); } } src/main/java/org/springblade/modules/system/controller/DeptController.java
@@ -61,7 +61,7 @@ @AllArgsConstructor @RequestMapping(AppConstant.APPLICATION_SYSTEM_NAME + "/dept") @Api(value = "部门", tags = "部门") @PreAuth(RoleConstant.HAS_ROLE_ADMIN) //@PreAuth(RoleConstant.HAS_ROLE_ADMIN) public class DeptController extends BladeController { private final IDeptService deptService; @@ -148,6 +148,22 @@ } /** * 自定义新增或修改 */ @PostMapping("/saveOrUpdateDeptInfo") @ApiOperation(value = "自定义新增或修改", notes = "传入dept") public R saveOrUpdateDeptInfo(@Valid @RequestBody Dept dept) { if (deptService.saveOrUpdateDeptInfo(dept)) { CacheUtil.clear(SYS_CACHE); // 返回懒加载树更新节点所需字段 Kv kv = Kv.create().set("id", String.valueOf(dept.getId())).set("tenantId", dept.getTenantId()) .set("deptCategoryName", DictCache.getValue(DictEnum.ORG_CATEGORY, dept.getDeptCategory())); return R.data(kv); } return R.fail("操作失败"); } /** * 删除 */ @PostMapping("/remove") src/main/java/org/springblade/modules/system/controller/UserController.java
@@ -81,7 +81,7 @@ @ApiOperationSupport(order = 1) @ApiOperation(value = "查看详情", notes = "传入id") @GetMapping("/detail") @PreAuth(RoleConstant.HAS_ROLE_ADMIN) // @PreAuth(RoleConstant.HAS_ROLE_ADMIN) public R<UserVO> detail(User user) { User detail = userService.getOne(Condition.getQueryWrapper(user)); return R.data(UserWrapper.build().entityVO(detail)); @@ -125,7 +125,7 @@ }) @ApiOperationSupport(order = 3) @ApiOperation(value = "列表", notes = "传入account和realName") @PreAuth(RoleConstant.HAS_ROLE_ADMIN) // @PreAuth(RoleConstant.HAS_ROLE_ADMIN) public R<IPage<UserVO>> page(@ApiIgnore User user, Query query, Long deptId, BladeUser bladeUser) { IPage<User> pages = userService.selectUserPage(Condition.getPage(query), user, deptId, (bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? StringPool.EMPTY : bladeUser.getTenantId())); return R.data(UserWrapper.build().pageVO(pages)); src/main/java/org/springblade/modules/system/mapper/DeptMapper.java
@@ -17,6 +17,7 @@ package org.springblade.modules.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.springblade.modules.system.entity.Dept; import org.springblade.modules.system.vo.DeptVO; @@ -65,4 +66,10 @@ */ List<String> getDeptNames(Long[] ids); /** * 查询当前机构信息 * @param id * @return */ DeptVO getDeptById(@Param("id") Long id); } src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml
@@ -112,4 +112,12 @@ and is_deleted = 0 </select> <!--查询当前机构信息--> <select id="getDeptById" resultType="org.springblade.modules.system.vo.DeptVO"> select c.*,p.dept_name as parentName from blade_dept c left join blade_dept p on c.parent_id = p.id and p.is_deleted = 0 where c.is_deleted = 0 and c.id = #{id} </select> </mapper> src/main/java/org/springblade/modules/system/service/IDeptService.java
@@ -116,4 +116,10 @@ */ List<DeptVO> search(String deptName, Long parentId); /** * 自定义新增或修改 * @param dept * @return */ boolean saveOrUpdateDeptInfo(Dept dept); } src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
@@ -17,6 +17,7 @@ package org.springblade.modules.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springblade.common.cache.SysCache; @@ -26,12 +27,17 @@ import org.springblade.core.tool.node.ForestNodeMerger; import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.StringPool; import org.springblade.modules.property.entity.PropertyCompanyEntity; import org.springblade.modules.property.service.IPropertyCompanyService; import org.springblade.modules.system.entity.Dept; import org.springblade.modules.system.entity.UserDept; import org.springblade.modules.system.mapper.DeptMapper; import org.springblade.modules.system.service.IDeptService; import org.springblade.modules.system.vo.DeptVO; import org.springblade.modules.system.wrapper.DeptWrapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Map; @@ -46,6 +52,9 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements IDeptService { private static final String TENANT_ID = "tenantId"; private static final String PARENT_ID = "parentId"; @Autowired private IPropertyCompanyService propertyCompanyService; @Override public List<DeptVO> lazyList(String tenantId, Long parentId, Map<String, Object> param) { @@ -123,16 +132,38 @@ } @Override @Transactional(rollbackFor = Exception.class) public boolean removeDept(String ids) { Long cnt = baseMapper.selectCount(Wrappers.<Dept>query().lambda().in(Dept::getParentId, Func.toLongList(ids))); if (cnt > 0L) { throw new ServiceException("请先删除子节点!"); } return removeByIds(Func.toLongList(ids)); List<Long> longs = Func.toLongList(ids); // 遍历 for (Long id : longs) { // 查询当前机构信息 DeptVO dept = baseMapper.getDeptById(id); // 如果父机构为物业公司 if (dept.getParentName().equals("物业公司")){ // 删除 propertyCompanyService.remove(Wrappers.<PropertyCompanyEntity>update().lambda().eq(PropertyCompanyEntity::getDeptId, id)); } } return removeByIds(longs); } @Override public boolean submit(Dept dept) { deptHandle(dept); // 保存并返回 return saveOrUpdate(dept); } /** * 机构信息处理 * @param dept */ private void deptHandle(Dept dept) { if (Func.isEmpty(dept.getParentId())) { dept.setTenantId(AuthUtil.getTenantId()); dept.setParentId(BladeConstant.TOP_PARENT_ID); @@ -148,7 +179,70 @@ dept.setAncestors(ancestors); } dept.setIsDeleted(BladeConstant.DB_NOT_DELETED); return saveOrUpdate(dept); } /** * 自定义新增或修改 * @param dept * @return */ @Override @Transactional(rollbackFor = Exception.class) public boolean saveOrUpdateDeptInfo(Dept dept) { boolean flag = false; deptHandle(dept); // 判断类型,如果为物业公司(上级机构名称为物业公司),名称不能重复 QueryWrapper<Dept> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("is_deleted",0).eq("id", dept.getParentId()); Dept parentDept = getOne(queryWrapper); // 如果父机构为物业公司 if (parentDept.getDeptName().equals("物业公司")){ // 查询当前 QueryWrapper<Dept> wrapper = new QueryWrapper<>(); wrapper.eq("is_deleted",0) .eq("dept_name",dept.getDeptName()); Dept one = getOne(wrapper); if (null!=one){ dept.setId(one.getId()); flag = updateById(dept); }else { flag = save(dept); } //保存物业公司信息 savePropertyCompany(dept); }else { flag = saveOrUpdate(dept); } // 保存并返回 return flag; } /** * 保存物业公司信息 * @param dept */ @Transactional(rollbackFor = Exception.class) public void savePropertyCompany(Dept dept) { // 查询物业公司是否存在 QueryWrapper<PropertyCompanyEntity> wrapper = new QueryWrapper<>(); wrapper.eq("is_deleted",0) .eq("dept_id",dept.getId()) .eq("name",dept.getDeptName()); PropertyCompanyEntity propertyCompanyEntity = propertyCompanyService.getOne(wrapper); if (null!=propertyCompanyEntity){ // 修改 propertyCompanyEntity.setDeptId(dept.getId()); propertyCompanyEntity.setName(dept.getDeptName()); // 往物业公司表中插入一条数据 propertyCompanyService.updateById(propertyCompanyEntity); }else { // 新增 PropertyCompanyEntity companyEntity = new PropertyCompanyEntity(); companyEntity.setDeptId(dept.getId()); companyEntity.setName(dept.getDeptName()); // 往物业公司表中插入一条数据 propertyCompanyService.save(companyEntity); } } @Override src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
@@ -141,6 +141,9 @@ @Override public IPage<User> selectUserPage(IPage<User> page, User user, Long deptId, String tenantId) { if (null == deptId && !AuthUtil.isAdministrator()){ deptId = Long.parseLong(AuthUtil.getDeptId()); } List<Long> deptIdList = SysCache.getDeptChildIds(deptId); return page.setRecords(baseMapper.selectUserPage(page, user, deptIdList, tenantId)); }