jiangping
2024-01-23 5db66ef6fb108de06df182189d822f3f5ebdd557
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)