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,6 +354,8 @@ if(insuranceApply.getIsdeleted().equals(Constants.ONE)){ 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(),"退回申请中,请勿重复操作"); } @@ -362,7 +364,16 @@ ||insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.SIGNATURE.getKey()))){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"数据状态非可申请退回!"); } Constants.InsuranceApplyStatus insuranceApplyStatus = Constants.InsuranceApplyStatus.COMPANY_APPLY_RETURN; }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(),"数据状态非可申请退回!"); } } 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 ")