111
k94314517
2024-01-20 87cc98263db6d1eeac48d0c06852c559cd0838ea
111
已修改14个文件
205 ■■■■ 文件已修改
server/company/src/main/java/com/doumee/api/business/ApplyDetailController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/company/src/main/java/com/doumee/api/business/MemberController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/core/utils/Constants.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/dto/InsuranceApplyOptDTO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/dto/MemberQueryDTO.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/ApplyDetail.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/Member.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/ApplyDetailService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/MemberService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/company/src/main/java/com/doumee/api/business/ApplyDetailController.java
@@ -88,4 +88,15 @@
    public ApiResponse findById(@PathVariable Integer id) {
        return ApiResponse.success(applyDetailService.findById(id));
    }
    @ApiOperation("查询员工投保记录")
    @GetMapping("/getMemberApplyList")
    public ApiResponse<List<ApplyDetail>> getMemberApplyList(@RequestParam Integer memberId) {
        return ApiResponse.success(applyDetailService.getMemberApplyList(memberId));
    }
}
server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java
@@ -91,10 +91,10 @@
    }
    @ApiOperation("企业申请退回")
    @PostMapping("/applyReturn")
    public ApiResponse applyReturn (@RequestBody InsuranceApplyOptDTO insuranceApplyOptDTO) {
        insuranceApplyService.applyReturn(insuranceApplyOptDTO);
    @ApiOperation("申请记录状态处理")
    @PostMapping("/applyOpt")
    public ApiResponse applyOpt (@RequestBody InsuranceApplyOptDTO insuranceApplyOptDTO) {
        insuranceApplyService.applyOpt(insuranceApplyOptDTO);
        return ApiResponse.success("操作成功");
    }
server/company/src/main/java/com/doumee/api/business/MemberController.java
@@ -71,18 +71,24 @@
        return ApiResponse.success(null);
    }
    @ApiOperation("分页查询")
    @PostMapping("/page")
    @RequiresPermissions("business:member:query")
    public ApiResponse<PageData<Member>> findPage (@RequestBody PageWrap<Member> pageWrap) {
        return ApiResponse.success(memberService.findPage(pageWrap));
    public ApiResponse<PageData<Member>> findPage (@RequestBody PageWrap<MemberQueryDTO> pageWrap) {
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        pageWrap.getModel().setCompanyId(user.getCompanyId());
        return ApiResponse.success(memberService.findPageForCompany(pageWrap));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @RequiresPermissions("business:member:exportExcel")
    public void exportExcel (@RequestBody PageWrap<Member> pageWrap, HttpServletResponse response) {
        ExcelExporter.build(Member.class).export(memberService.findPage(pageWrap).getRecords(), "用工信息表", response);
    public void exportExcel (@RequestBody PageWrap<MemberQueryDTO> pageWrap, HttpServletResponse response) {
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        pageWrap.getModel().setCompanyId(user.getCompanyId());
        ExcelExporter.build(Member.class).export(memberService.findPageForCompany(pageWrap).getRecords(), "用工信息表", response);
    }
    @ApiOperation("根据ID查询")
server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -663,7 +663,7 @@
        FAIL_RETURN(4, "保单出具失败退回"),
        UPLOAD_INSURANCE(5, "已上传保单"),
        COMPANY_APPLY_RETURN(6, "企业申请退回"),
        COMPANY_APPLY_CLOSE(7, "企业关闭申请"),
        PLATFORM_AGREE(7, "平台同意退回"),
        CLOSE(8, "订单关闭"),
        ;
        // 成员变量
server/service/src/main/java/com/doumee/dao/business/dto/InsuranceApplyOptDTO.java
@@ -17,4 +17,7 @@
    @ApiModelProperty(value = "操作说明")
    private String optIllustration;
    @ApiModelProperty(value = "操作类型:1=申请退回;2=关闭")
    private Integer optType;
}
server/service/src/main/java/com/doumee/dao/business/dto/MemberQueryDTO.java
@@ -14,6 +14,14 @@
    @ApiModelProperty(value = "身份证号码")
    private String idCard;
    @ApiModelProperty(value = "派遣单位主键")
    private Integer duId;
    @ApiModelProperty(value = "保险方案主键")
    private Integer solutionsId;
    @ApiModelProperty(value = "保险状态:0=全部;1=保障中;2=不在保")
    private Integer solutionsStatus;
    @ApiModelProperty(value = "需过滤数据集合")
    private List<Integer> memberIds;
server/service/src/main/java/com/doumee/dao/business/model/ApplyDetail.java
@@ -97,14 +97,30 @@
    @ExcelColumn(name="当前费用")
    private BigDecimal currentFee;
    @ApiModelProperty(value = "员工名称")
    @ApiModelProperty(value = "来源主键(apply_chagne_detail)加减保生成存在", example = "1")
    @ExcelColumn(name="来源主键(apply_chagne_detail)加减保生成存在")
    private Integer fromId;
    @ApiModelProperty(value = "保单号")
    @TableField(exist = false)
    private String memberName;
    private String applyCode;
    @ApiModelProperty(value = "方案名称")
    @TableField(exist = false)
    private String solutionName;
    @ApiModelProperty(value = "批单号")
    @TableField(exist = false)
    private String validCode;
    @ApiModelProperty(value = "派遣单位名称")
    @TableField(exist = false)
    private String duName;
    @ApiModelProperty(value = "员工名称")
    @TableField(exist = false)
    private String memberName;
    @ApiModelProperty(value = "工种名称")
    @TableField(exist = false)
    private String workTypeName;
server/service/src/main/java/com/doumee/dao/business/model/Member.java
@@ -92,6 +92,10 @@
    @ExcelColumn(name="性别 0男 1女")
    private Integer sex;
    @ApiModelProperty(value = "保险方案名称")
    @TableField(exist = false)
    private String solutionName;
    @ApiModelProperty(value = "派遣单位名称")
    @TableField(exist = false)
    private String duName;
server/service/src/main/java/com/doumee/service/business/ApplyDetailService.java
@@ -99,4 +99,11 @@
     * @return long
     */
    long count(ApplyDetail applyDetail);
    /**
     * 查询员工投保记录
     * @param memberId
     * @return
     */
    List<ApplyDetail> getMemberApplyList(Integer memberId);
}
server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java
@@ -99,5 +99,5 @@
    InsuranceApply findDetail(Integer id);
    void applyReturn(InsuranceApplyOptDTO insuranceApplyOptDTO);
    void applyOpt(InsuranceApplyOptDTO insuranceApplyOptDTO);
}
server/service/src/main/java/com/doumee/service/business/MemberService.java
@@ -88,6 +88,8 @@
     */
    PageData<Member> findPage(PageWrap<Member> pageWrap);
    PageData<Member> findPageForCompany(PageWrap<MemberQueryDTO> pageWrap);
    /**
     * 条件统计
     *
server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java
@@ -173,8 +173,18 @@
        queryWrapper.selectAs(DispatchUnit::getName,ApplyDetail::getDuName);
        queryWrapper.selectAs(Worktype::getName,ApplyDetail::getWorkTypeName);
        queryWrapper.selectAs(Member::getName,ApplyDetail::getMemberName);
        queryWrapper.leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId);
        queryWrapper.leftJoin(Worktype.class,Worktype::getId,ApplyDetail::getWorktypeId);
        queryWrapper.leftJoin(Member.class,Member::getId,ApplyDetail::getMemberId);
        ApplyDetailPageDTO applyDetailPageDTO = pageWrap.getModel();
        queryWrapper.eq(!Objects.isNull(applyDetailPageDTO.getApplyId()),ApplyDetail::getApplyId,applyDetailPageDTO.getApplyId());
        queryWrapper.ge(!Objects.isNull(applyDetailPageDTO.getApplyStatus())
                        &&!applyDetailPageDTO.getApplyStatus().equals(Constants.ZERO),
                ApplyDetail::getStartTime, DateUtil.getDate(new Date(),"yyyy-MM-dd")+" 00:00:00");
        //在保
        queryWrapper.le(!Objects.isNull(applyDetailPageDTO.getApplyStatus())
                &&applyDetailPageDTO.getApplyStatus().equals(Constants.ONE),
@@ -207,4 +217,32 @@
        QueryWrapper<ApplyDetail> wrapper = new QueryWrapper<>(applyDetail);
        return applyDetailMapper.selectCount(wrapper);
    }
    @Override
    public List<ApplyDetail> getMemberApplyList(Integer memberId) {
        List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectJoinList(ApplyDetail.class,
                new MPJLambdaWrapper<ApplyDetail>()
                        .selectAll(ApplyDetail.class)
                        .selectAs(DispatchUnit::getName,ApplyDetail::getDuName)
                        .selectAs(Worktype::getName,ApplyDetail::getWorkTypeName)
                        .selectAs(Member::getName,ApplyDetail::getMemberName)
                        .selectAs(Solutions::getName,ApplyDetail::getSolutionName)
                        .selectAs(ApplyChange::getValidCode,ApplyDetail::getValidCode)
                        .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId)
                        .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
                        .leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId)
                        .leftJoin(Worktype.class,Worktype::getId,ApplyDetail::getWorktypeId)
                        .leftJoin(Member.class,Member::getId,ApplyDetail::getMemberId)
                        .leftJoin(ApplyChagneDetail.class,ApplyChagneDetail::getId,ApplyDetail::getFromId)
                        .leftJoin(ApplyChange.class,ApplyChange::getId,ApplyChagneDetail::getApplyChangeId)
                        .eq(ApplyDetail::getMemberId,memberId)
                        .orderByAsc(ApplyDetail::getCreateDate)
        );
        return applyDetailList;
    }
}
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
@@ -337,7 +337,7 @@
    @Override
    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
    public void applyReturn(InsuranceApplyOptDTO insuranceApplyOptDTO){
    public void applyOpt(InsuranceApplyOptDTO insuranceApplyOptDTO){
        if(Objects.isNull(insuranceApplyOptDTO)
            ||Objects.isNull(insuranceApplyOptDTO.getApplyId())
            ||StringUtils.isBlank(insuranceApplyOptDTO.getOptIllustration())){
@@ -354,15 +354,26 @@
        if(insuranceApply.getIsdeleted().equals(Constants.ONE)){
            throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"数据已删除,无法进行该操作");
        }
        if(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.COMPANY_APPLY_RETURN.getKey())){
            throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"退回申请中,请勿重复操作");
        Constants.InsuranceApplyStatus insuranceApplyStatus =  Constants.InsuranceApplyStatus.COMPANY_APPLY_RETURN;
        if(insuranceApplyOptDTO.getOptType().equals(Constants.ONE)){
            if(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.COMPANY_APPLY_RETURN.getKey())){
                throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"退回申请中,请勿重复操作");
            }
            if(!(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.UPLOAD.getKey())
                    ||insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.WAIT_SIGNATURE.getKey())
                    ||insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.SIGNATURE.getKey()))){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"数据状态非可申请退回!");
            }
        }else if(insuranceApplyOptDTO.getOptType().equals(Constants.TWO)){
            insuranceApplyStatus =  Constants.InsuranceApplyStatus.CLOSE;
            if(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.CLOSE.getKey())){
                throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"已关闭,请勿重复操作");
            }
            if(!(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.PLATFORM_AGREE.getKey())
                    ||insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.PLATFORM_RETURN.getKey()))){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"数据状态非可申请退回!");
            }
        }
        if(!(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.UPLOAD.getKey())
            ||insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.WAIT_SIGNATURE.getKey())
            ||insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.SIGNATURE.getKey()))){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"数据状态非可申请退回!");
        }
        Constants.InsuranceApplyStatus insuranceApplyStatus = Constants.InsuranceApplyStatus.COMPANY_APPLY_RETURN;
        insuranceApply.setStatus(insuranceApplyStatus.getKey());
        insuranceApply.setCheckDate(new Date());
        insuranceApply.setCheckInfo(insuranceApplyOptDTO.getOptIllustration());
@@ -370,8 +381,8 @@
        insuranceApplyMapper.updateById(insuranceApply);
        //存储日志数据
        this.saveApplyLog(insuranceApply,insuranceApplyStatus,null);
    }
}
server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -1,16 +1,15 @@
package com.doumee.service.business.impl;
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.DateUtil;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.MemberMapper;
import com.doumee.dao.business.dto.MemberQueryDTO;
import com.doumee.dao.business.join.MemberJoinMapper;
import com.doumee.dao.business.model.DispatchUnit;
import com.doumee.dao.business.model.DuWorktype;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.business.model.Worktype;
import com.doumee.dao.business.model.*;
import com.doumee.service.business.MemberService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -18,9 +17,12 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@@ -40,6 +42,8 @@
    @Override
    public Integer create(Member member) {
        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        member.setCompanyId(loginUserInfo.getCompanyId());
        memberMapper.insert(member);
        return member.getId();
    }
@@ -157,6 +161,48 @@
        return PageData.from(memberMapper.selectPage(page, queryWrapper));
    }
    @Override
    public PageData<Member> findPageForCompany(PageWrap<MemberQueryDTO> pageWrap) {
        IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        MemberQueryDTO memberQueryDTO = pageWrap.getModel();
        queryWrapper.selectAll(Member.class)
                .selectAs(DispatchUnit::getName,Member::getDuName)
                .selectAs(Worktype::getName,Member::getWorkTypeName)
                .selectAs(Solutions::getName,Member::getSolutionName)
                .leftJoin(InsuranceApply.class,InsuranceApply::getId,Member::getApplyId)
                .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
                .leftJoin(DispatchUnit.class,DispatchUnit::getId,Member::getDuId)
                .leftJoin(Worktype.class,Worktype::getId,Member::getWorktypeId)
                .eq(Member::getIsdeleted, Constants.ZERO)
                .eq(Member::getCompanyId, memberQueryDTO.getCompanyId())
                .like(StringUtils.isNotBlank(memberQueryDTO.getName()),Member::getName, memberQueryDTO.getName())
                .like(StringUtils.isNotBlank(memberQueryDTO.getIdCard()),Member::getIdcardNo, memberQueryDTO.getIdCard())
                .eq(!Objects.isNull(memberQueryDTO.getDuId()),Member::getDuId, memberQueryDTO.getDuId())
                .eq(!Objects.isNull(memberQueryDTO.getSolutionsId()),Solutions::getId, memberQueryDTO.getSolutionsId())
                .ge(!Objects.isNull(memberQueryDTO.getSolutionsStatus())&&!memberQueryDTO.getSolutionsStatus().equals(Constants.ZERO),
                        Member::getStartTime, DateUtil.getDate(new Date(),"yyyy-MM-dd")+" 00:00:00")
                .le(!Objects.isNull(memberQueryDTO.getSolutionsStatus())&&memberQueryDTO.getSolutionsStatus().equals(Constants.ONE),
                        Member::getEndTime, DateUtil.getDate(new Date(),"yyyy-MM-dd")+" 23:59:59")
                .ge(!Objects.isNull(memberQueryDTO.getSolutionsStatus())&&memberQueryDTO.getSolutionsStatus().equals(Constants.TWO),
                        Member::getEndTime, DateUtil.getDate(new Date(),"yyyy-MM-dd")+" 23:59:59")
        ;
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        PageData<Member> pageData = PageData.from(memberJoinMapper.selectJoinPage(page,Member.class, queryWrapper));
        return pageData;
    }
    @Override
    public long count(Member member) {
        QueryWrapper<Member> wrapper = new QueryWrapper<>(member);
@@ -174,6 +220,7 @@
                .notIn(CollectionUtils.isNotEmpty(memberQueryDTO.getMemberIds()),Member::getId,memberQueryDTO.getMemberIds())
                .eq(!Objects.isNull(memberQueryDTO.getCompanyId()),Member::getCompanyId,memberQueryDTO.getCompanyId())
                .eq(Member::getIsdeleted, Constants.ZERO)
                .like(StringUtils.isNotBlank(memberQueryDTO.getName()),Member::getName, memberQueryDTO.getName())
                .notExists(!Objects.isNull(memberQueryDTO.getInsuranceApplyId()),
                        " select 1 from apply_detail ad where ad.applyId = "+memberQueryDTO.getInsuranceApplyId()+" and ad.END_TIME > now() and ad.isdeleted = 0 " +
                                " and ad.member_id = t.id ")