111
k94314517
2024-01-31 5bce819f4a418f9ae352eb105e33707de1e0c1ce
111
已修改7个文件
144 ■■■■ 文件已修改
server/company/src/main/java/com/doumee/api/business/ApplyChangeController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/dto/ApplyDetailPageDTO.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/ApplyChangeService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java 112 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/company/src/main/java/com/doumee/api/business/ApplyChangeController.java
@@ -4,8 +4,10 @@
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.dto.ApplyChangeCyclePriceDTO;
import com.doumee.dao.business.dto.ApplyChangeOptDTO;
import com.doumee.dao.business.dto.CountCyclePriceDTO;
@@ -15,7 +17,8 @@
import com.doumee.service.business.ApplyChangeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
@@ -64,11 +67,11 @@
        return ApiResponse.success(null);
    }
    @ApiOperation("根据ID修改")
    @PostMapping("/updateById")
    @ApiOperation("修改信息")
    @PostMapping("/update")
    @RequiresPermissions("business:applychange:update")
    public ApiResponse updateById(@RequestBody ApplyChange applyChange) {
        applyChangeService.updateById(applyChange);
    public ApiResponse update(@RequestBody ApplyChange applyChange) {
        applyChangeService.update(applyChange);
        return ApiResponse.success(null);
    }
@@ -116,7 +119,6 @@
    public ApiResponse findById(@PathVariable Integer id) {
        return ApiResponse.success(applyChangeService.findDetail(id));
    }
    @ApiOperation(value = "业务处理",notes = "退回申请,关闭等")
    @PostMapping("/applyChangeOpt")
server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java
@@ -136,9 +136,6 @@
    }
    @ApiOperation("测试实际金额")
    @GetMapping("/testFee")
    public ApiResponse testFee(@RequestParam Integer id) {
server/service/src/main/java/com/doumee/dao/business/dto/ApplyDetailPageDTO.java
@@ -16,6 +16,7 @@
    @ApiModelProperty(value = "在保状态:1=保障中;2=不在保; 0=全部")
    private Integer applyStatus;
    @ApiModelProperty(value = "派遣单位主键")
    private Integer duId;
@@ -24,6 +25,10 @@
    @ApiModelProperty(value = "员工姓名")
    private String memberName;
    @ApiModelProperty(value = "员工主键")
    private Integer memberId;
    @ApiModelProperty(value = "员工姓名",hidden = true)
    private String companyName;
    @ApiModelProperty(value = "方案名称",hidden = true)
server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java
@@ -153,6 +153,10 @@
    @TableField(exist = false)
    private Integer solutionsId;
    @ApiModelProperty(value = "基表保险方案主键")
    @TableField(exist = false)
    private Integer baseSolutionsId;
    @ApiModelProperty(value = "加保明细数据")
    @TableField(exist = false)
    private List<ApplyChagneDetail> addDetailList;
server/service/src/main/java/com/doumee/service/business/ApplyChangeService.java
@@ -24,6 +24,7 @@
     * @return Integer
     */
    Integer create(ApplyChange applyChange);
    Integer update(ApplyChange applyChange);
    Integer back(ApplyChange param);
    Integer dealBackApply(ApplyChange param);
    Integer uploadPidan(ApplyChange insuranceApply);
server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
@@ -454,11 +454,12 @@
        if (!loginUserInfo.getType().equals(Constants.ONE)) {
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "用户类型错误:非企业用户无法进行该操作");
        }
        BigDecimal fee = BigDecimal.ZERO;
        InsuranceApply insuranceApply = insuranceApplyMapper.selectById(applyChange.getApplyId());
        if (Objects.isNull(insuranceApply)) {
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        System.out.println(Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey());
        if (!Constants.equalsInteger(insuranceApply.getStatus(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())) {
            throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "保单状态错误");
        }
@@ -491,6 +492,90 @@
        applyChange.setStatus(Constants.ZERO);
        applyChangeMapper.insert(applyChange);
        this.dealApplyChangeData(applyChange,insuranceApply,companySolution,solutions,loginUserInfo,fee);
        ApplyChange applyChangeFee = new ApplyChange();
        applyChangeFee.setId(applyChange.getId());
        applyChangeFee.setFee(fee);
        applyChangeMapper.updateById(applyChangeFee);
        this.saveApplyLog(applyChange,Constants.ApplyChangeLogStatus.UPLOAD,null);
        return applyChange.getId();
    }
    @Override
    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
    public Integer update(ApplyChange applyChange) {
        if (Objects.isNull(applyChange)
                || Objects.isNull(applyChange.getId())
                || Objects.isNull(applyChange.getApplyId())
                || Objects.isNull(applyChange.getValidTime())
                || Objects.isNull(applyChange.getType())
                || !(applyChange.getType().equals(Constants.ZERO) || applyChange.getType().equals(Constants.ONE))
        ) {
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        if (!loginUserInfo.getType().equals(Constants.ONE)) {
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "用户类型错误:非企业用户无法进行该操作");
        }
        ApplyChange dbApplyChange = applyChangeMapper.selectById(applyChange.getId());
        if(Objects.isNull(dbApplyChange)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        if(!dbApplyChange.getStatus().equals(Constants.ApplyChangeStatus.PLATFORM_AGREE.getKey())){
            throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "业务保申请单状态错误");
        }
        InsuranceApply insuranceApply = insuranceApplyMapper.selectById(applyChange.getApplyId());
        if (Objects.isNull(insuranceApply)) {
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        if (!Constants.equalsInteger(insuranceApply.getStatus(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())) {
            throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "保单状态错误");
        }
        if (DateUtil.compareDate(insuranceApply.getEndTime(),new Date()) >= Constants.ZERO
        ) {
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "保单已过保,无法进行该操作");
        }
        Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId());
        if(Objects.isNull(solutions)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到保险方案");
        }
        CompanySolution companySolution = companySolutionMapper.selectOne(new QueryWrapper<CompanySolution>().lambda()
                .eq(CompanySolution::getCompanyId,loginUserInfo.getCompanyId())
                .eq(CompanySolution::getSolutionBaseId,solutions.getId())
                .eq(CompanySolution::getIsdeleted,Constants.ZERO)
                .last(" limit 1 ")
        );
        if(Objects.isNull(companySolution)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到企业分配保险方案信息");
        }
        //申请时间必须处于保单的时间范围内
        if (!(DateUtil.compareDate( insuranceApply.getStartTime(),applyChange.getValidTime()) >= Constants.ZERO
                && DateUtil.compareDate( applyChange.getValidTime(),insuranceApply.getEndTime()) >= Constants.ZERO)) {
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "申请日期未处于保单日期内,无法进行该操作");
        }
        applyChange.setEditDate(new Date());
        applyChange.setEditor(loginUserInfo.getId());
        applyChange.setStatus(Constants.ZERO);
        BigDecimal fee = BigDecimal.ZERO;
        this.dealApplyChangeData(applyChange,insuranceApply,companySolution,solutions,loginUserInfo,fee);
        applyChange.setFee(fee);
        applyChangeMapper.updateById(applyChange);
        this.saveApplyLog(applyChange,Constants.ApplyChangeLogStatus.UPLOAD,null);
        return applyChange.getId();
    }
    public void dealApplyChangeData(ApplyChange applyChange,InsuranceApply insuranceApply,CompanySolution companySolution,Solutions solutions,LoginUserInfo loginUserInfo,BigDecimal fee){
        //查询保险方案下的所有派遣单位
        List<DuSolution>  duSolutionList = duSolutionJoinMapper.selectJoinList(DuSolution.class,new MPJLambdaWrapper<DuSolution>()
                .selectAll(DuSolution.class)
@@ -514,17 +599,16 @@
        if (!CollectionUtils.isNotEmpty(duWorktypeList)) {
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "数据异常:保险方案下未查询到工种信息");
        }
        BigDecimal fee = BigDecimal.ZERO;
        //加保数据
        List<ApplyChagneDetail> addDetailList = applyChange.getAddDetailList();
        if (CollectionUtils.isNotEmpty(addDetailList)) {
           if(companySolution.getCanAdd().equals(Constants.ZERO)){
               throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "该企业分配保险方案无法进行加保");
           }
            if(companySolution.getCanAdd().equals(Constants.ZERO)){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "该企业分配保险方案无法进行加保");
            }
            this.addChangeDetail(applyChange,addDetailList,duWorktypeList,duSolutionList,insuranceApply,solutions,loginUserInfo);
            fee = addDetailList.stream().map(ApplyChagneDetail::getFee).reduce(BigDecimal.ZERO,BigDecimal::add);
        }
        //减保数据
@@ -533,23 +617,19 @@
            if(companySolution.getCanReduce().equals(Constants.ZERO)){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "该企业分配保险方案无法进行减保");
            }
             this.delChangeDetail(applyChange,delDetailList,insuranceApply,solutions,loginUserInfo);
            this.delChangeDetail(applyChange,delDetailList,insuranceApply,solutions,loginUserInfo);
            fee = fee.add(delDetailList.stream().map(ApplyChagneDetail::getFee).reduce(BigDecimal.ZERO,BigDecimal::add));
        }
        ApplyChange applyChangeFee = new ApplyChange();
        applyChangeFee.setId(applyChange.getId());
        applyChangeFee.setFee(fee);
        applyChangeMapper.updateById(applyChangeFee);
        //换厂业务
        List<ApplyChagneDetail> changeDetailList = applyChange.getChangeDetailList();
        if (CollectionUtils.isNotEmpty(changeDetailList)) {
            this.changeDetail(applyChange,changeDetailList,duWorktypeList,duSolutionList,loginUserInfo);
        }
        this.saveApplyLog(applyChange,Constants.ApplyChangeLogStatus.UPLOAD,null);
        return applyChange.getId();
    }
    public void saveApplyLog(ApplyChange applyChange,Constants.ApplyChangeLogStatus applyChangeLogStatus,String content){
@@ -894,6 +974,7 @@
        queryWrapper
                .selectAll(ApplyChange.class)
                .selectAs(InsuranceApply::getCode,ApplyChange::getApplyCode)
                .selectAs(Solutions::getName,ApplyChange::getSolutionsName)
                .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 0  )",ApplyChange::getAddNum)
                .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 1  )",ApplyChange::getDelNum)
                .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 2  )",ApplyChange::getChangeNum)
@@ -906,7 +987,8 @@
                        Constants.ApplyChangeStatus.RETURN_APPLY_UPLOAD.getKey(),
                        Constants.ApplyChangeStatus.RETURN_APPLY_SIGNATURE.getKey())
                .eq(!Objects.isNull(model.getCompanyId()),InsuranceApply::getCompanyId,model.getCompanyId())
                .eq(!Objects.isNull(model.getSolutionsId()),ApplyChange::getSolutionsId,model.getSolutionsId())
//                .eq(!Objects.isNull(model.getSolutionsId()),ApplyChange::getSolutionsId,model.getSolutionsId())
                .eq(!Objects.isNull(model.getBaseSolutionsId()),Solutions::getBaseId,model.getBaseSolutionsId())
                .ge(StringUtils.isNotBlank(model.getCreateDateS()),ApplyChange::getCreateDate, model.getCreateDateS()+" 00:00:00" )
                .le(StringUtils.isNotBlank(model.getCreateDateE()),ApplyChange::getCreateDate, model.getCreateDateE()+" 23:59:59" );
server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java
@@ -249,12 +249,16 @@
        MPJLambdaWrapper<ApplyDetail> queryWrapper = new MPJLambdaWrapper<>();
        queryWrapper.selectAll(ApplyDetail.class);
        queryWrapper.selectAs(DispatchUnit::getName,ApplyDetail::getDuName);
        queryWrapper.selectAs(InsuranceApply::getCode,ApplyDetail::getApplyCode);
        queryWrapper.selectAs(Solutions::getName,ApplyDetail::getSolutionName);
        queryWrapper.selectAs(Worktype::getName,ApplyDetail::getWorkTypeName);
        queryWrapper.selectAs(Member::getIdcardNo,ApplyDetail::getIdcardNo);
        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);
        queryWrapper.leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId);
        queryWrapper.leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId);
        queryWrapper.eq(!Objects.isNull(applyDetailPageDTO.getApplyId()),ApplyDetail::getApplyId,applyDetailPageDTO.getApplyId());
        queryWrapper.ge(!Objects.isNull(applyDetailPageDTO.getApplyStatus())
                        &&!applyDetailPageDTO.getApplyStatus().equals(Constants.ZERO),
@@ -270,6 +274,7 @@
        queryWrapper.eq(!Objects.isNull(applyDetailPageDTO.getDuId()),ApplyDetail::getDuId,applyDetailPageDTO.getDuId());
        queryWrapper.eq(!Objects.isNull(applyDetailPageDTO.getWorkTypeId()),ApplyDetail::getWorktypeId,applyDetailPageDTO.getWorkTypeId());
        queryWrapper.like(StringUtils.isNotBlank(applyDetailPageDTO.getMemberName()),Member::getName,applyDetailPageDTO.getMemberName());
        queryWrapper.eq(!Objects.isNull(applyDetailPageDTO.getMemberId()),Member::getId,applyDetailPageDTO.getMemberId());
        queryWrapper.ge(StringUtils.isNotBlank(applyDetailPageDTO.getStartTimeS()),ApplyDetail::getStartTime,applyDetailPageDTO.getStartTimeS()+" 00:00:00");
        queryWrapper.le(StringUtils.isNotBlank(applyDetailPageDTO.getStartTimeE()),ApplyDetail::getStartTime,applyDetailPageDTO.getStartTimeE()+" 23:59:59");
        queryWrapper.ge(StringUtils.isNotBlank(applyDetailPageDTO.getEndTimeS()),ApplyDetail::getEndTime,applyDetailPageDTO.getEndTimeS()+" 00:00:00");