jiangping
2024-01-24 f84dcb86fc4c833202d9495a259d07082b7b72ae
server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
@@ -158,9 +158,13 @@
        multifileMapper.insert(param.getPidanFile());
        update.setApplyId(model.getApplyId());
        long times =  param.getApplyStartTime().getTime() - model.getValidTime().getTime();
        //处理加减保明细数据
        dealDetailsValidTime(update,times);
        if(Constants.equalsInteger(model.getType(),Constants.ZERO)){
            //如果是加减保申请 处理加减保明细数据
            dealDetailsValidTime(update);
        }else{
            //如果是换厂申请 处理明细数据
            dealDetailsDUdata(update);
        }
        Constants.ApplyLogType applyLogType = Constants.ApplyLogType.CA_PLATFORM_APPROVE;
@@ -234,9 +238,45 @@
    /**
     * 处理加减保明细数据
     * @param update
     * @param times
     */
    private void dealDetailsValidTime(ApplyChange update,long times) {
    private void dealDetailsDUdata(ApplyChange update ) {
        List<ApplyChagneDetail> detailList = applyChagneDetailJoinMapper.selectJoinList(ApplyChagneDetail.class,
                new MPJLambdaWrapper<ApplyChagneDetail>()
                        .selectAll(ApplyChagneDetail.class)
                        .selectAs(Solutions::getTimeUnit,ApplyChagneDetail::getSolutionTimeUnit)
                        .selectAs(Solutions::getPrice,ApplyChagneDetail::getSolutionPrice)
                  .leftJoin(ApplyChange.class, ApplyChange::getId, ApplyChagneDetail::getApplyChangeId)
                  .leftJoin(Solutions.class, Solutions::getId, ApplyChange::getSolutionsId)
                  .eq(ApplyChagneDetail::getApplyChangeId,update.getId())
                  .eq(ApplyChagneDetail::getIsdeleted,Constants.ZERO) );
        if(detailList ==null || detailList.size()==0){
            return;
        }
        for(ApplyChagneDetail detail : detailList){
            //查询员工是在主单下 是否存在生效中的数据
            ApplyDetail oldModel = applyDetailJoinMapper.selectOne(new QueryWrapper<ApplyDetail>().lambda()
                    .eq(ApplyDetail::getApplyId, update.getApplyId())
                    .eq(ApplyDetail::getMemberId, detail.getMemberId())
                    .orderByDesc(ApplyDetail::getCreateDate)
                    .last("limit 1"));
            if(oldModel == null  ){
                throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"对不起,用户【"+detail.getMemberName()+"】原保单信息有误,当前申请不支持减保处理!");
            }
            applyDetailJoinMapper.update(null, new UpdateWrapper<ApplyDetail>().lambda()
                    .set(ApplyDetail::getEditor,update.getEditor())
                    .set(ApplyDetail::getWorktypeId,detail.getWorktypeId())
                    .set(ApplyDetail::getDuId,detail.getDuId())
                    .set(ApplyDetail::getEditDate,update.getEditDate())
                    .eq(ApplyDetail::getId,oldModel.getApplyId())
            );
        }
    }
    /**
     * 处理加减保明细数据
     * @param update
     */
    private void dealDetailsValidTime(ApplyChange update ) {
        List<ApplyChagneDetail> detailList = applyChagneDetailJoinMapper.selectJoinList(ApplyChagneDetail.class,
                new MPJLambdaWrapper<ApplyChagneDetail>()
                        .selectAll(ApplyChagneDetail.class)
@@ -870,8 +910,112 @@
        ApplyChange applyChange =  applyChangeJoinMapper.selectOne(queryWrapper);
        return applyChange;
    }
    /**
     * 导出换厂申请表
     * @param param
     * @return
     */
    @Override
    public  ApplyChange  exportChangeUnitExcel(ApplyChange param){
        ApplyChange model = findJoinDetail(param);
        if(Objects.isNull(model) ||! Constants.equalsInteger(Constants.ZERO,model.getType())){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        //查询明细
        List<ApplyChagneDetail> detailList =findJoinChangeDetailList(model);
        model.setChangeDetailList(detailList!=null?detailList:new ArrayList<>());
        model.setChangeNum(model.getChangeDetailList().size());
        return model;
    }
    /**
     * 导出加减保申请表
     * @param param
     * @return
     */
    @Override
    public  ApplyChange  exportJiajianBaoExcel(ApplyChange param){
        ApplyChange model = findJoinDetail(param);
        if(Objects.isNull(model) ||! Constants.equalsInteger(Constants.ZERO,model.getType())){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        //查询明细
        List<ApplyChagneDetail> detailList =findJoinDetailList(model);
        model.setAddDetailList(new ArrayList<>());
        model.setDelDetailList(new ArrayList<>());
        if(detailList!=null){
            for(ApplyChagneDetail ad :detailList){
                if(Constants.equalsInteger(ad.getType(),Constants.ZERO)){
                    model.getAddDetailList().add(ad);
                }else{
                    model.getDelDetailList().add(ad);
                }
            }
        }
        model.setDelNum(model.getDelDetailList().size());
        model.setAddNum(model.getAddDetailList().size());
        return model;
    }
    private ApplyChange findJoinDetail(ApplyChange param) {
        MPJLambdaWrapper wrapper=  new MPJLambdaWrapper<ApplyChange>()
                .selectAll(ApplyChange.class)
                .selectAs(Solutions::getName,ApplyChange::getSolutionsName)
                .selectAs(Company::getName,ApplyChange::getCompanyName)
                .selectAs(InsuranceApply::getCode,ApplyChange::getApplyCode)
                .selectAs(InsuranceApply::getStartTime,ApplyChange::getStartTime)
                .selectAs(InsuranceApply::getStartTime,ApplyChange::getEndTime)
                .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyChange::getApplyId)
                .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
                .leftJoin(Company.class,Company::getId,ApplyChange::getCompanyId)
                .eq(ApplyChange::getId,param.getId())
                .last("limit 1");
        ApplyChange model = applyChangeJoinMapper.selectJoinOne(ApplyChange.class,wrapper);
        return  model;
    }
    private List<ApplyChagneDetail> findJoinDetailList(ApplyChange model) {
        MPJLambdaWrapper wrapper1=  new MPJLambdaWrapper<ApplyChagneDetail>()
                .selectAll(ApplyChagneDetail.class)
                .selectAs(Member::getName,ApplyChagneDetail::getMemberName)
                .selectAs(Member::getSex,ApplyChagneDetail::getSex)
                .selectAs(Member::getIdcardNo,ApplyChagneDetail::getIdcardNo)
                .selectAs(Worktype::getName,ApplyChagneDetail::getWorkTypeName)
                .selectAs(DispatchUnit::getName,ApplyChagneDetail::getDuName)
                .leftJoin(Worktype.class,Worktype::getId,ApplyChagneDetail::getWorktypeId)
                .leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyChagneDetail::getDuId)
                .leftJoin(Member.class,Member::getId,ApplyChagneDetail::getMemberId)
                .eq(ApplyChagneDetail::getIsdeleted,Constants.ZERO)
                .eq(ApplyChagneDetail::getApplyChangeId,model.getId());
        //查询明细
        List<ApplyChagneDetail> detailList =applyChagneDetailJoinMapper.selectJoinList(ApplyChagneDetail.class,wrapper1);
        return  detailList;
    }
    private List<ApplyChagneDetail> findJoinChangeDetailList(ApplyChange model) {
        MPJLambdaWrapper wrapper1=  new MPJLambdaWrapper<ApplyChagneDetail>()
                .selectAll(ApplyChagneDetail.class)
                .selectAs(Member::getName,ApplyChagneDetail::getMemberName)
                .selectAs(Member::getSex,ApplyChagneDetail::getSex)
                .select("t1.name as worktypeName")
                .select("t2.name as duName")
                .select("t3.name as oldWorktypeName")
                .select("t4.name as oldDuName")
                .selectAs(Member::getSex,ApplyChagneDetail::getSex)
                .selectAs(Member::getIdcardNo,ApplyChagneDetail::getIdcardNo)
                .leftJoin(Worktype.class,Worktype::getId,ApplyChagneDetail::getWorktypeId)
                .leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyChagneDetail::getDuId)
                .leftJoin(Worktype.class,Worktype::getId,ApplyChagneDetail::getOldWorktypeId)
                .leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyChagneDetail::getOldDuId)
                .leftJoin(Member.class,Member::getId,ApplyChagneDetail::getMemberId)
                .eq(ApplyChagneDetail::getIsdeleted,Constants.ZERO)
                .eq(ApplyChagneDetail::getApplyChangeId,model.getId());
        //查询明细
        List<ApplyChagneDetail> detailList =applyChagneDetailJoinMapper.selectJoinList(ApplyChagneDetail.class,wrapper1);
        return  detailList;
    }
}