linwe
2023-11-25 8400a67289b214b83a20484410fff96d236c6d49
Merge remote-tracking branch 'origin/master'
15 files modified
265 ■■■■■ changed files
src/main/java/org/springblade/modules/property/controller/PropertyCompanyController.java 14 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/property/entity/PropertyCapitalApplyEntity.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/property/mapper/PropertyCapitalApplyMapper.java 4 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/property/mapper/PropertyCapitalApplyMapper.xml 11 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/property/mapper/PropertyCompanyMapper.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/property/mapper/PropertyCompanyMapper.xml 17 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/property/service/IPropertyCompanyService.java 12 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/property/service/impl/PropertyCompanyServiceImpl.java 54 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/controller/DeptController.java 18 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/controller/UserController.java 4 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/mapper/DeptMapper.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml 8 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/IDeptService.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java 98 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java 3 ●●●●● patch | view | raw | blame | history
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));
    }