k94314517
2024-04-01 a7d11031939ddb31a11f62e4a48b4a068b6e7db4
git ch
已修改10个文件
已重命名1个文件
170 ■■■■■ 文件已修改
server/platform/src/main/java/com/doumee/task/ScheduleTool.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/dto/UnionApplyBXDDTO.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/dto/UnionApplyBXDDetailDTO.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/UnionChange.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/UnionApplyService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/ApplyChagneDetailServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/shop/src/main/java/com/doumee/api/business/UnionChangeController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/platform/src/main/java/com/doumee/task/ScheduleTool.java
@@ -4,6 +4,7 @@
import com.doumee.dao.business.model.InsuranceApply;
import com.doumee.service.business.CompanyService;
import com.doumee.service.business.InsuranceApplyService;
import com.doumee.service.business.UnionApplyService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
@@ -25,6 +26,9 @@
    @Autowired
    private InsuranceApplyService insuranceApplyService;
    @Autowired
    private UnionApplyService unionApplyService;
    /**
@@ -74,6 +78,10 @@
        log.info("==============定时更新保单实际金额=======start======");
        insuranceApplyService.updateApplyCurrentFee(null);
        log.info("==============定时更新保单实际金额======end=======");
        log.info("==============定时更新合并单实际金额=======start======");
        unionApplyService.updateUnionApplyCurrentFee(null);
        log.info("==============定时更新合并单实际金额======end=======");
    }
server/service/src/main/java/com/doumee/dao/business/dto/UnionApplyBXDDTO.java
@@ -1,6 +1,5 @@
package com.doumee.dao.business.dto;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -38,6 +37,6 @@
    private String fileName;
    @ApiModelProperty(value = "合并单明细保单信息")
    private List<UnionApplyBXDDDetailTO> unionApplyBXDDDetailTOList;
    private List<UnionApplyBXDDetailDTO> unionApplyBXDDDetailDTOList;
    
}
server/service/src/main/java/com/doumee/dao/business/dto/UnionApplyBXDDetailDTO.java
ÎļþÃû´Ó server/service/src/main/java/com/doumee/dao/business/dto/UnionApplyBXDDDetailTO.java ÐÞ¸Ä
@@ -1,11 +1,9 @@
package com.doumee.dao.business.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
 * Created by IntelliJ IDEA.
@@ -14,7 +12,7 @@
 * @create 2024/3/20 16:52
 */
@Data
public class UnionApplyBXDDDetailTO {
public class UnionApplyBXDDetailDTO {
    @ApiModelProperty(value = "投保单主键 insurance_apply")
    private Integer applyId;
server/service/src/main/java/com/doumee/dao/business/model/UnionChange.java
@@ -149,4 +149,10 @@
    @ApiModelProperty(value = "换厂人数")
    @TableField(exist = false)
    private Integer changeNum;
    @ApiModelProperty(value = "日志记录")
    @TableField(exist = false)
    private List<ApplyLog> applyLogList;
}
server/service/src/main/java/com/doumee/service/business/UnionApplyService.java
@@ -131,4 +131,10 @@
    UnionApply detail(Integer applyId);
    UnionApply findDetailForExport(UnionApply model);
    /**
     * æ›´æ–°åˆå¹¶å•金额
     * @param id
     */
    void updateUnionApplyCurrentFee(Integer id);
}
server/service/src/main/java/com/doumee/service/business/impl/ApplyChagneDetailServiceImpl.java
@@ -232,6 +232,9 @@
            }
        }
        PageData<ApplyChagneDetail> pageData = PageData.from(applyChangeDetailJoinMapper.selectJoinPage(page,ApplyChagneDetail.class, queryWrapper));
        for (ApplyChagneDetail applyChagneDetail:pageData.getRecords()) {
            applyChagneDetail.setAge(Constants.getAgeByIdCard(applyChagneDetail.getMemberIdcardNo()));
        }
        return pageData;
    }
server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
@@ -1470,6 +1470,7 @@
                .eq(!Objects.isNull(model.getSolutionType()),Solutions::getType,model.getSolutionType())
                .eq(!Objects.isNull(model.getApplyId()),ApplyChange::getApplyId,model.getApplyId())
                .eq(!Objects.isNull(model.getBaseSolutionsId()),Solutions::getBaseId,model.getBaseSolutionsId())
                .like(StringUtils.isNotBlank(model.getSolutionsName()),Solutions::getName,model.getSolutionsName())
                .ge(StringUtils.isNotBlank(model.getCreateDateS()),ApplyChange::getCreateDate, model.getCreateDateS()+" 00:00:00" )
                .le(StringUtils.isNotBlank(model.getCreateDateE()),ApplyChange::getCreateDate, model.getCreateDateE()+" 23:59:59" )
                .ge(StringUtils.isNotBlank(model.getApplyStartS()),ApplyChange::getApplyStartTime, model.getApplyStartS()+" 00:00:00" )
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
@@ -2330,11 +2330,12 @@
     * æ›´æ–°ä¿å•实际金额
     */
    @Override
    @Transactional(rollbackFor = {Exception.class})
    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
    public void updateApplyCurrentFee(Integer id){
        List<InsuranceApply> insuranceApplyList = insuranceApplyMapper.selectList(new QueryWrapper<InsuranceApply>().lambda()
        List<InsuranceApply> insuranceApplyList = insuranceApplyJoinMapper.selectJoinList(InsuranceApply.class,new MPJLambdaWrapper<InsuranceApply>()
                .selectAll(InsuranceApply.class)
                .eq(InsuranceApply::getIsdeleted,Constants.ZERO)
                .eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())
                .in(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey(),Constants.InsuranceApplyStatus.WTB_TOUBAOING.getKey())
                .eq(!Objects.isNull(id),InsuranceApply::getId,id)
                .le(InsuranceApply::getStartTime,DateUtil.getDate(new Date(),"yyyy-MM-dd") + " 00:00:00")
                .ge(InsuranceApply::getEndTime,DateUtil.getDate(new Date(),"yyyy-MM-dd") + " 23:59:59")
@@ -2342,20 +2343,23 @@
        if(CollectionUtils.isNotEmpty(insuranceApplyList)){
            for (InsuranceApply insuranceApply:insuranceApplyList) {
                Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId());
                if(Objects.isNull(solutions)){
                    continue;
                }
//                Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId());
//                if(Objects.isNull(solutions)){
//                    continue;
//                }
                BigDecimal sumAmount = BigDecimal.ZERO;
                List<ApplyDetail> applyDetailList = applyDetailMapper.selectList(new QueryWrapper<ApplyDetail>().lambda().eq(ApplyDetail::getApplyId,insuranceApply.getId()));
                List<ApplyDetail> applyDetailList = applyDetailMapper
                        .selectList(new QueryWrapper<ApplyDetail>().lambda()
                                .eq(ApplyDetail::getApplyId,insuranceApply.getId()));
                if(CollectionUtils.isNotEmpty(applyDetailList)){
                    for (ApplyDetail applyDetail: applyDetailList) {
                        //2024-1-30 10:04:24 ä¿®æ”¹ æ ¹æ®å®žé™…天数进行计算 å½“前费用  æ€»é‡‘额/总天数*实际天数
                        Integer maxDays = DateUtil.calculateBetween(applyDetail.getStartTime(),applyDetail.getEndTime(),0);
//                        Integer maxDays = DateUtil.calculateBetween(applyDetail.getStartTime(),applyDetail.getEndTime(),0);
                        BigDecimal fee = applyDetail.getFee();
                        if(applyDetail.getStartTime().compareTo(new Date()) <= 0 && applyDetail.getEndTime().compareTo(new Date()) >= 0 ){
                            Integer days =  DateUtil.calculateBetween(applyDetail.getStartTime(),new Date(),0);
                            applyDetail.setCurrentFee(fee.divide(BigDecimal.valueOf(maxDays),2, BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(days)));
                            applyDetail.setCurrentFee(new BigDecimal(days).multiply(applyDetail.getPrice()));
                            //applyDetail.setCurrentFee(fee.divide(BigDecimal.valueOf(maxDays),2, BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(days)));
                            applyDetailMapper.updateById(applyDetail);
                        }else if(applyDetail.getStartTime().compareTo(new Date()) <= 0&&applyDetail.getEndTime().compareTo(new Date()) <= 0){
                            applyDetail.setCurrentFee(fee);
@@ -2368,10 +2372,6 @@
                insuranceApplyMapper.updateById(insuranceApply);
            }
        }
//        if(1==1){
//            throw new BusinessException(ResponseStatus.NOT_ALLOWED);
//        }
    }
server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java
@@ -26,7 +26,6 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.doumee.service.business.third.SignService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import io.swagger.models.auth.In;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -695,7 +694,6 @@
            || Objects.isNull(unionApplyBXDDTO.getStartTime())
            || Objects.isNull(unionApplyBXDDTO.getEndTime())
            || StringUtils.isBlank(unionApplyBXDDTO.getCode())
            || Objects.isNull(unionApplyBXDDTO.getUnionApplyBXDDDetailTOList())
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
@@ -711,7 +709,7 @@
            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该合并单状态已流转,当前不支持该操作~");
        }
        //加价参数
        List<UnionApplyBXDDDetailTO> unionApplyBXDDDetailTOList = unionApplyBXDDTO.getUnionApplyBXDDDetailTOList();
        List<UnionApplyBXDDetailDTO> unionApplyBXDDetailDTOList = unionApplyBXDDTO.getUnionApplyBXDDDetailDTOList();
        //所有投保申请保单明细行
        List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectList(new QueryWrapper<ApplyDetail>().lambda().select(ApplyDetail::getPrice)
@@ -727,33 +725,18 @@
            //当前日期在结束日期之后
            useDays =  -1;
        }
        BigDecimal sumFee = BigDecimal.ZERO;
        BigDecimal sumCurrFee = BigDecimal.ZERO;
        for (UnionApplyBXDDDetailTO unionApplyBXDDDetailTO:unionApplyBXDDDetailTOList) {
            InsuranceApply insuranceApply = insuranceApplyJoinMapper.selectById(unionApplyBXDDDetailTO.getApplyId());
            if(Objects.isNull(insuranceApply)||!Constants.equalsInteger(insuranceApply.getIsdeleted(),Constants.ZERO)){
                throw  new BusinessException(ResponseStatus.DATA_EMPTY);
            }
            if(!insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.PLATFORM_CHECK_PASS.getKey())){
                throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该投保单状态已流转,当前不支持该操作~");
            }
            List<ApplyDetail> applyDetails = applyDetailList.stream().filter(m->m.getApplyId().equals(unionApplyBXDDDetailTO.getApplyId())).collect(Collectors.toList());
            if(CollectionUtils.isEmpty(applyDetails)){
                throw  new BusinessException(ResponseStatus.DATA_EMPTY);
            }
            //提交后的新价格 åŠ ä¸ŠæœåŠ¡è´¹
            BigDecimal price = applyDetails.get(Constants.ZERO).getPrice().add(unionApplyBXDDDetailTO.getServerMoney());
            //实际已产生费用
            BigDecimal currentFee = BigDecimal.ZERO;
            if(useDays==-1){
                currentFee =  new BigDecimal(maxDays).multiply(price);
            }else if(useDays>0){
                currentFee =  new BigDecimal(useDays).multiply(price);
            }
        List<InsuranceApply> insuranceApplyList = insuranceApplyJoinMapper.selectList(new QueryWrapper<InsuranceApply>()
                .lambda().eq(InsuranceApply::getUnionApplyId,unionApply.getId()));
        for (InsuranceApply insuranceApply:insuranceApplyList) {
            BigDecimal price = insuranceApply.getPrice();
            Optional<UnionApplyBXDDetailDTO> unionApplyBXDDDetailTO= unionApplyBXDDetailDTOList.stream().filter(m->m.getApplyId().equals(insuranceApply.getId())).findFirst();
            if(unionApplyBXDDDetailTO.isPresent()){
                UnionApplyBXDDetailDTO unionApplyBXDDetailDTO = unionApplyBXDDDetailTO.get();
                price = price.add(unionApplyBXDDetailDTO.getServerMoney());
            //上传保单信息
            if(StringUtils.isNotBlank(unionApplyBXDDDetailTO.getFileUrl())){
                if(StringUtils.isNotBlank(unionApplyBXDDetailDTO.getFileUrl())){
                Multifile multifile = new Multifile();
                multifile.setIsdeleted(Constants.ZERO);
                multifile.setCreator(user.getId());
@@ -761,13 +744,23 @@
                multifile.setObjId(insuranceApply.getId());
                multifile.setObjType(Constants.MultiFile.BD_DONE_PDF.getKey());
                multifile.setType(Constants.TWO);
                multifile.setFileurl(unionApplyBXDDDetailTO.getFileUrl());
                multifile.setName(unionApplyBXDDDetailTO.getFileName());
                    multifile.setFileurl(unionApplyBXDDetailDTO.getFileUrl());
                    multifile.setName(unionApplyBXDDetailDTO.getFileName());
                multifileMapper.insert(multifile);
                insuranceApply.setUnionApplyTbdStatus(Constants.ONE);
            }else{
                insuranceApply.setUnionApplyTbdStatus(Constants.ZERO);
            }
            }
            //实际已产生费用
            BigDecimal currentFee = BigDecimal.ZERO;
            if(useDays==-1){
                currentFee =  new BigDecimal(maxDays).multiply(price);
            }else if(useDays>0){
                currentFee =  new BigDecimal(useDays).multiply(price);
            }
            List<ApplyDetail> applyDetails = applyDetailList.stream().filter(m->m.getApplyId().equals(insuranceApply.getId())).collect(Collectors.toList());
            //更新投保申请单
            insuranceApplyJoinMapper.update(null,new UpdateWrapper<InsuranceApply>().lambda()
                    .set(InsuranceApply::getFee,
@@ -798,7 +791,9 @@
            sumFee = sumFee.add(price.multiply(new BigDecimal(applyDetails.size())).multiply(new BigDecimal(maxDays)));
            sumCurrFee = sumCurrFee.add(currentFee.multiply(new BigDecimal(applyDetails.size())));
        }
        unionApplyMapper.update(null,new UpdateWrapper<UnionApply>()
                .lambda()
                .set(UnionApply::getStatus,Constants.UnionApplyStatus.FINISH)
@@ -838,4 +833,32 @@
    }
    @Override
    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
    public void updateUnionApplyCurrentFee(Integer id){
        List<UnionApply> unionApplyList = unionApplyJoinMapper.selectJoinList(UnionApply.class,new MPJLambdaWrapper<UnionApply>()
                .selectAll(UnionApply.class)
                .eq(UnionApply::getIsdeleted,Constants.ZERO)
                .eq(UnionApply::getStatus,Constants.UnionApplyStatus.FINISH)
                .eq(!Objects.isNull(id),UnionApply::getId,id)
                .le(UnionApply::getStartTime,DateUtil.getDate(new Date(),"yyyy-MM-dd") + " 00:00:00")
                .ge(UnionApply::getEndTime,DateUtil.getDate(new Date(),"yyyy-MM-dd") + " 23:59:59")
        );
        if(CollectionUtils.isNotEmpty(unionApplyList)){
            for (UnionApply unionApply:unionApplyList) {
                List<InsuranceApply> insuranceApplyList = insuranceApplyJoinMapper
                        .selectList(new QueryWrapper<InsuranceApply>().lambda()
                                .eq(InsuranceApply::getUnionApplyId,unionApply.getId()));
                if(CollectionUtils.isNotEmpty(insuranceApplyList)){
                    unionApply.setCurrentFee(insuranceApplyList.stream().map(m->m.getCurrentFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
                    unionApplyMapper.updateById(unionApply);
                }
            }
        }
    }
}
server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java
@@ -16,6 +16,7 @@
import com.doumee.dao.business.join.*;
import com.doumee.dao.business.model.*;
import com.doumee.dao.business.vo.CountCyclePriceVO;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.SmsEmailService;
import com.doumee.service.business.UnionChangeService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -92,6 +93,9 @@
    @Autowired
    private ApplyLogMapper applyLogMapper;
    @Autowired
    private ApplyLogJoinMapper applyLogJoinMapper;
    @Override
    public Integer create(UnionChange unionChange) {
        unionChangeMapper.insert(unionChange);
@@ -157,6 +161,23 @@
                        .eq(UnionChange::getId,id)
                        .last(" limit 1 ")
        );
        if(!Objects.isNull(unionChange)){
            //查询操作记录
            List<ApplyLog> applyLogList = applyLogJoinMapper.selectJoinList(ApplyLog.class,
                    new MPJLambdaWrapper<ApplyLog>()
                            .selectAll(ApplyLog.class)
                            .selectAs(SystemUser::getRealname,ApplyLog::getCreatorName)
                            .selectAs(Company::getName,ApplyLog::getCompanyName)
                            .selectAs(SystemUser::getType,ApplyLog::getCreatorType)
                            .leftJoin(SystemUser.class,SystemUser::getId,ApplyLog::getCreator)
                            .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId)
                            .in(ApplyLog::getObjType,Constants.ApplyLogType.getTypeList(Constants.THREE))
                            .eq(ApplyLog::getApplyId,unionChange.getId())
                            .orderByAsc(ApplyLog::getCreateDate)
            );
            unionChange.setApplyLogList(applyLogList);
        }
        return unionChange;
    }
@@ -179,14 +200,15 @@
        IPage<UnionChange> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        MPJLambdaWrapper<UnionChange> queryWrapper = new MPJLambdaWrapper<>();
        queryWrapper.selectAll(UnionChange.class);
        queryWrapper.selectAs(UnionApply::getCode,UnionChange::getApplyCode)
        queryWrapper.selectAs(UnionApply::getCode,UnionChange::getApplyCode);
        queryWrapper.selectAs(Solutions::getName,UnionChange::getSolutionsName)
        .select("( select count(1) from apply_chagne_detail ad where t.id = ad.UNION_CHANGE_ID and ad.TYPE = 0  )",UnionChange::getAddNum)
        .select("( select count(1) from apply_chagne_detail ad where t.id = ad.UNION_CHANGE_ID and ad.TYPE = 1  )",UnionChange::getDelNum)
        .select("( select count(1) from apply_chagne_detail ad where t.id = ad.UNION_CHANGE_ID and ad.TYPE = 2  )",UnionChange::getChangeNum);
        queryWrapper.leftJoin(UnionApply.class,UnionApply::getId,UnionChange::getUnionApplyId);
        queryWrapper.leftJoin(Solutions.class,Solutions::getId,UnionApply::getSolutionId);
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        if(user.getType().equals(Constants.TWO)){
        if(Constants.equalsInteger(user.getType(),Constants.TWO)){
            queryWrapper.eq(UnionChange::getShopId, pageWrap.getModel().getShopId());
        }
        Utils.MP.blankToNull(pageWrap.getModel());
server/shop/src/main/java/com/doumee/api/business/UnionChangeController.java
@@ -112,7 +112,7 @@
    @ApiOperation("签署申请单")
    @PostMapping("/getSignLink")
    @RequiresPermissions("business:unionchange:query")
    @RequiresPermissions("business:unionchange:sign")
    public ApiResponse getSignLink(@RequestBody SmsCheckDTO smsCheckDTO) {
        unionChangeService.getSignLink(smsCheckDTO);
        return ApiResponse.success(null);
@@ -120,7 +120,7 @@
    @ApiOperation("上传保险单")
    @PostMapping("/uploadBXD")
    @RequiresPermissions("business:unionchange:query")
    @RequiresPermissions("business:unionchange:uploadBXD")
    public ApiResponse uploadBXD(@RequestBody UnionChangeBXDDTO unionChangeBXDDTO) {
        unionChangeService.uploadBXD(unionChangeBXDDTO);
        return ApiResponse.success(null);