jiangping
2024-01-17 5de7e6e552bfceb3d5c4dc28482833150e37b49e
调整
已添加2个文件
已修改11个文件
188 ■■■■■ 文件已修改
server/company/src/main/java/com/doumee/api/business/CompanyController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/company/src/main/java/com/doumee/api/business/CompanyPermissionController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/config/mybatis/EasySqlInjector.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/CompanyPermissionMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/join/SolutionWorktypeJoinMapper.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/Company.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/CompanyPermission.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/SolutionWorktype.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/Solutions.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/CompanyPermissionServiceImpl.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/InsuranceServiceImpl.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/company/src/main/java/com/doumee/api/business/CompanyController.java
@@ -6,6 +6,7 @@
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.Company;
import com.doumee.service.business.CompanyService;
import io.swagger.annotations.Api;
@@ -71,6 +72,14 @@
    @PostMapping("/page")
    @RequiresPermissions("business:company:query")
    public ApiResponse<PageData<Company>> findPage (@RequestBody PageWrap<Company> pageWrap) {
        //权限范围内
        return ApiResponse.success(companyService.findPage(pageWrap));
    }
    @ApiOperation("查询全部数据(账号分配企业使用)")
    @PostMapping("/pageAll")
    @RequiresPermissions("business:companypermission:create")
    public ApiResponse<PageData<Company>> findPageAll (@RequestBody PageWrap<Company> pageWrap) {
        pageWrap.getModel().setQueryFlag(Constants.ONE);//查询全部
        return ApiResponse.success(companyService.findPage(pageWrap));
    }
server/company/src/main/java/com/doumee/api/business/CompanyPermissionController.java
@@ -31,7 +31,7 @@
    private CompanyPermissionService companyPermissionService;
    @PreventRepeat
    @ApiOperation("新建")
    @ApiOperation("账号分配企业权限")
    @PostMapping("/create")
    @RequiresPermissions("business:companypermission:create")
    public ApiResponse create(@RequestBody CompanyPermission companyPermission) {
@@ -73,6 +73,12 @@
    public ApiResponse<PageData<CompanyPermission>> findPage (@RequestBody PageWrap<CompanyPermission> pageWrap) {
        return ApiResponse.success(companyPermissionService.findPage(pageWrap));
    }
    @ApiOperation("查询全部")
    @PostMapping("/list")
    @RequiresPermissions("business:companypermission:query")
    public ApiResponse<List<CompanyPermission>> findList(@RequestBody CompanyPermission pageWrap) {
        return ApiResponse.success(companyPermissionService.findList(pageWrap));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
server/service/src/main/java/com/doumee/config/mybatis/EasySqlInjector.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package com.doumee.config.mybatis;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.core.injector.AbstractMethod;
import com.baomidou.mybatisplus.extension.injector.methods.InsertBatchSomeColumn;
import com.github.yulichang.injector.MPJSqlInjector;
import java.util.List;
public class EasySqlInjector extends MPJSqlInjector {
    @Override
    public List<AbstractMethod> getMethodList(Class<?> mapperClass ) {
        // æ³¨æ„ï¼šæ­¤SQL注入器继承了DefaultSqlInjector(默认注入器),调用了DefaultSqlInjector的getMethodList方法,保留了mybatis-plus的自带方法
        List<AbstractMethod> methodList = super.getMethodList(mapperClass);
        methodList.add(new InsertBatchSomeColumn(i -> i.getFieldFill() != FieldFill.UPDATE));
        return methodList;
    }
}
server/service/src/main/java/com/doumee/dao/business/CompanyPermissionMapper.java
@@ -3,10 +3,13 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.CompanyPermission;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/01/16 10:03
 */
public interface CompanyPermissionMapper extends BaseMapper<CompanyPermission> {
    void insertBatchSomeColumn(List<CompanyPermission> list);
}
server/service/src/main/java/com/doumee/dao/business/join/SolutionWorktypeJoinMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
package com.doumee.dao.business.join;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.SolutionWorktype;
import com.github.yulichang.base.mapper.MPJJoinMapper;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/01/16 10:03
 */
public interface SolutionWorktypeJoinMapper extends MPJJoinMapper<SolutionWorktype> {
}
server/service/src/main/java/com/doumee/dao/business/model/Company.java
@@ -1,5 +1,6 @@
package com.doumee.dao.business.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -115,5 +116,11 @@
    @ExcelColumn(name="电子签认证时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date signDate;
    @ApiModelProperty(value = "查询辨识 0权限范围内 1全部")
    @TableField(exist = false)
    private int queryFlag ;
    @ApiModelProperty(value = "是否拥有权限 0无 1有")
    @TableField(exist = false)
    private int hasPerimission ;
}
server/service/src/main/java/com/doumee/dao/business/model/CompanyPermission.java
@@ -9,6 +9,7 @@
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import java.util.List;
/**
 * ç®¡ç†å‘˜ç®¡ç†ä¼ä¸šæƒé™
@@ -58,5 +59,8 @@
    @ApiModelProperty(value = "用户编码", example = "1")
    @ExcelColumn(name="用户编码")
    private Integer userId;
    @ApiModelProperty(value = "企业编码集合", example = "1")
    @ExcelColumn(name="企业编码集合")
    private List<Integer> companyIdList;
}
server/service/src/main/java/com/doumee/dao/business/model/SolutionWorktype.java
@@ -1,5 +1,6 @@
package com.doumee.dao.business.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -66,5 +67,8 @@
    @ApiModelProperty(value = "工种编码(关联worktype)", example = "1")
    @ExcelColumn(name="工种编码(关联worktype)")
    private Integer worktypeId;
    @ApiModelProperty(value = "工种名称", example = "1")
    @TableField(exist = false)
    private String worktypeName;
}
server/service/src/main/java/com/doumee/dao/business/model/Solutions.java
@@ -152,6 +152,9 @@
    @ApiModelProperty(value = "工种编码集合", example = "1")
    @TableField(exist = false)
    private List<Integer> worktypeIdList;
    @ApiModelProperty(value = "工种关联集合", example = "1")
    @TableField(exist = false)
    private  List<SolutionWorktype> worktypeList;
}
server/service/src/main/java/com/doumee/service/business/impl/CompanyPermissionServiceImpl.java
@@ -1,10 +1,17 @@
package com.doumee.service.business.impl;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.CompanyMapper;
import com.doumee.dao.business.CompanyPermissionMapper;
import com.doumee.dao.business.model.Company;
import com.doumee.dao.business.model.CompanyPermission;
import com.doumee.dao.system.SystemUserMapper;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.CompanyPermissionService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -14,6 +21,8 @@
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@@ -26,10 +35,42 @@
    @Autowired
    private CompanyPermissionMapper companyPermissionMapper;
    @Autowired
    private SystemUserMapper systemUserMapper;
    @Autowired
    private CompanyMapper companyMapper;
    @Override
    public Integer create(CompanyPermission companyPermission) {
        companyPermissionMapper.insert(companyPermission);
        if(companyPermission.getUserId() == null || companyPermission.getCompanyIdList() == null || companyPermission.getCompanyIdList().size()==0){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        SystemUser user =systemUserMapper.selectById(companyPermission.getUserId());
        if(user == null || (user.getDeleted() !=null && user.getDeleted())){
            throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,用户信息不存在,请尝试刷新页面重试!");
        }
        List<Company> companieList = companyMapper.selectList(new QueryWrapper<Company>().lambda()
                .in(Company::getId,companyPermission.getCompanyIdList())
                .eq(Company::getIsdeleted, Constants.ZERO));
        if(companieList == null || companieList.size() == 0){
            throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,请选择有效企业,请尝试刷新页面重试!");
        }
        Date date = new Date();
        List<CompanyPermission> list = new ArrayList<>();
        for(Company c : companieList){
            CompanyPermission model = new CompanyPermission();
            model.setCompanyId(c.getId());
            model.setIsdeleted(Constants.ZERO);
            model.setIsdeleted(Constants.ZERO);
            model.setCreator(user.getId());
            model.setUserId(companyPermission.getUserId());
            model.setCreateDate(date);
            list.add(model);
        }
        //刪除原有的,在批量插入新的
        companyPermissionMapper.delete(new QueryWrapper<CompanyPermission>().lambda().eq(CompanyPermission::getUserId,companyPermission.getUserId()));
        companyPermissionMapper.insertBatchSomeColumn(list);
        return companyPermission.getId();
    }
server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
@@ -1,15 +1,23 @@
package com.doumee.service.business.impl;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.CompanyMapper;
import com.doumee.dao.business.CompanyPermissionMapper;
import com.doumee.dao.business.model.Company;
import com.doumee.dao.business.model.CompanyPermission;
import com.doumee.dao.business.model.Insurance;
import com.doumee.service.business.CompanyService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -26,9 +34,12 @@
    @Autowired
    private CompanyMapper companyMapper;
    @Autowired
    private CompanyPermissionMapper companyPermissionMapper;
    @Override
    public Integer create(Company company) {
        companyMapper.insert(company);
        return company.getId();
    }
@@ -54,6 +65,10 @@
    @Override
    public void updateById(Company company) {
        Company model = findById(company.getId());
        if(model == null  || !Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO) ){
            throw  new BusinessException(ResponseStatus.DATA_EMPTY );
        }
        companyMapper.updateById(company);
    }
@@ -89,6 +104,15 @@
        IPage<Company> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<Company> queryWrapper = new QueryWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        pageWrap.getModel().setIsdeleted(Constants.ZERO);
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        if(pageWrap.getModel().getQueryFlag() == 0){
            //只能看权限范围内
            queryWrapper.exists("select b.id from company_permission b where b.user_id="+user.getId()+" and b.isdeleted=0 and b.company_id=company.id");
        } else if (pageWrap.getModel().getQueryFlag() == 1) {
            //查詢是否有查看權限
            queryWrapper.select("*,(select count(1) from company_permission b where b.user_id="+user.getId()+" and b.isdeleted=0 and b.company_id=company.id) as hasPerimission");
        }
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(Company::getId, pageWrap.getModel().getId());
        }
@@ -110,7 +134,7 @@
            queryWrapper.lambda().eq(Company::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getName() != null) {
            queryWrapper.lambda().eq(Company::getName, pageWrap.getModel().getName());
            queryWrapper.lambda().like(Company::getName, pageWrap.getModel().getName());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(Company::getRemark, pageWrap.getModel().getRemark());
server/service/src/main/java/com/doumee/service/business/impl/InsuranceServiceImpl.java
@@ -71,6 +71,7 @@
        return insurance.getId();
    }
    private void dealWorkTypeData(Insurance insurance, Insurance newModel, List<Worktype> worktypeList,boolean isNew) {
       int num=0;
        for(Worktype w : worktypeList) {
            //基础版本
            w.setInsuranceId(insurance.getId());
@@ -80,6 +81,7 @@
            w.setDataType(insurance.getDataType());
            w.setStatus(Constants.ZERO);
            w.setVersion(insurance.getVersion());
            w.setSortnum(num++);
            worktypeMapper.insert(w);
            //历史版本的工种信息
@@ -89,6 +91,7 @@
            newType.setBaseId(w.getId());
            newType.setDataType(Constants.ONE);
            newType.setVersion(newModel.getVersion());
            w.setSortnum(num++);
            worktypeMapper.insert(newType);
        }
    }
@@ -159,7 +162,6 @@
    @Override
    public void updateById(Insurance insurance) {
        LoginUserInfo user= (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
        Insurance model = findById(insurance.getId());
        if(model == null  || !Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)
                || !Constants.equalsInteger(model.getDataType(),Constants.ZERO)){
@@ -167,7 +169,7 @@
        }
        //数据有效性校验
        initCreateParam(insurance);
        LoginUserInfo user= (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
        Insurance updateModel = new Insurance();
        updateModel.setEditor(user.getId());
        updateModel.setName(insurance.getName());
@@ -241,7 +243,16 @@
    @Override
    public Insurance findById(Integer id) {
        return insuranceMapper.selectById(id);
        Insurance model = insuranceMapper.selectById(id);
        if(model == null  || !Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){
            throw  new BusinessException(ResponseStatus.DATA_EMPTY );
        }
        List<Worktype> worktypeList = worktypeMapper.selectList(new QueryWrapper<Worktype>().lambda()
                .eq(Worktype::getInsuranceId,id)
                .eq(Worktype::getIsdeleted,Constants.ZERO)
                .orderByAsc(Worktype::getSortnum));
        model.setWorktypeList(worktypeList);
        return model;
    }
    @Override
@@ -285,7 +296,7 @@
            queryWrapper.lambda().eq(Insurance::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getName() != null) {
            queryWrapper.lambda().eq(Insurance::getName, pageWrap.getModel().getName());
            queryWrapper.lambda().like(Insurance::getName, pageWrap.getModel().getName());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(Insurance::getRemark, pageWrap.getModel().getRemark());
server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java
@@ -11,12 +11,14 @@
import com.doumee.dao.business.SolutionWorktypeMapper;
import com.doumee.dao.business.SolutionsMapper;
import com.doumee.dao.business.WorktypeMapper;
import com.doumee.dao.business.join.SolutionWorktypeJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.service.business.SolutionsService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.BeanUtils;
@@ -42,7 +44,7 @@
    @Autowired
    private WorktypeMapper worktypeMapper;
    @Autowired
    private SolutionWorktypeMapper solutionWorktypeMapper;
    private SolutionWorktypeJoinMapper solutionWorktypeJoinMapper;
    @Autowired
    private InsuranceMapper insuranceMapper;
@@ -87,7 +89,7 @@
        if(worktypeList==null ||worktypeIdList.size()==0){
            throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,工种信息选择有误,请尝试刷新页面重试~" );
        }
        int num =0;
        for(Worktype type : worktypeList) {
            //基础版本
            SolutionWorktype w = new SolutionWorktype();
@@ -97,13 +99,14 @@
            w.setCreateDate(solutions.getCreateDate());
            w.setWorktypeId(type.getId());
            w.setStatus(Constants.ZERO);
            solutionWorktypeMapper.insert(w);
            w.setSortnum(num++);
            solutionWorktypeJoinMapper.insert(w);
            //历史版本的工种信息
            SolutionWorktype newType = new SolutionWorktype();
            BeanUtils.copyProperties(w, newType);
            newType.setSolutionId(newModel.getId());
            solutionWorktypeMapper.insert(newType);
            solutionWorktypeJoinMapper.insert(newType);
        }
    }
@@ -172,7 +175,7 @@
        solutionsMapper.insert(newModel);
        //删除所有工种数据
        solutionWorktypeMapper.delete(new UpdateWrapper<SolutionWorktype>()
        solutionWorktypeJoinMapper.delete(new UpdateWrapper<SolutionWorktype>()
                .lambda()
                .eq(SolutionWorktype::getSolutionId,solutions.getId())
        );
@@ -222,7 +225,20 @@
    }
    @Override
    public Solutions findById(Integer id) {
        return solutionsMapper.selectById(id);
        Solutions model = solutionsMapper.selectById(id);
        if(model == null  || !Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){
            throw  new BusinessException(ResponseStatus.DATA_EMPTY );
        }
        MPJLambdaWrapper<SolutionWorktype> wrapper = new MPJLambdaWrapper<>();
        wrapper.selectAll(SolutionWorktype.class);
        wrapper.selectAs(Worktype::getName,SolutionWorktype::getWorktypeName);
        wrapper.leftJoin(Worktype.class,Worktype::getId,SolutionWorktype::getWorktypeId);
        wrapper.eq(SolutionWorktype::getSolutionId,id);
        wrapper.eq(SolutionWorktype::getIsdeleted,Constants.ZERO);
        wrapper.orderByAsc(SolutionWorktype::getSortnum);
        List<SolutionWorktype> worktypeList = solutionWorktypeJoinMapper.selectJoinList(SolutionWorktype.class,wrapper);
        model.setWorktypeList(worktypeList);
        return model;
    }
    @Override
@@ -266,7 +282,7 @@
            queryWrapper.lambda().eq(Solutions::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getName() != null) {
            queryWrapper.lambda().eq(Solutions::getName, pageWrap.getModel().getName());
            queryWrapper.lambda().like(Solutions::getName, pageWrap.getModel().getName());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(Solutions::getRemark, pageWrap.getModel().getRemark());