nidapeng
2024-04-09 9dd5d877978595c27b044b795ea31bc0347438c9
server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java
@@ -80,6 +80,8 @@
    @Autowired
    private MemberInsuranceJoinMapper memberInsuranceJoinMapper;
    @Autowired
    private MemberMapper memberMapper;
    @Value("${debug_model}")
    private boolean debugModel;
@@ -742,8 +744,20 @@
        List<UnionApplyBXDDetailDTO> unionApplyBXDDetailDTOList = unionApplyBXDDTO.getUnionApplyBXDDDetailDTOList();
        //所有投保申请保单明细行
        List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectList(new QueryWrapper<ApplyDetail>().lambda()
                .select(ApplyDetail::getId,ApplyDetail::getApplyId,ApplyDetail::getPrice)
        List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectJoinList(ApplyDetail.class,new MPJLambdaWrapper<ApplyDetail>()
                        .selectAll(ApplyDetail.class)
                .selectAs(DispatchUnit::getName,ApplyDetail::getDuName)
                .selectAs(InsuranceApply::getCode,ApplyDetail::getApplyCode)
                .selectAs(Solutions::getId,ApplyDetail::getSolutionId)
                .selectAs(Solutions::getName,ApplyDetail::getSolutionName)
                .selectAs(Worktype::getName,ApplyDetail::getWorkTypeName)
                .selectAs(Member::getIdcardNo,ApplyDetail::getIdcardNo)
                .selectAs(Member::getName,ApplyDetail::getMemberName)
                .leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId)
                .leftJoin(Worktype.class,Worktype::getId,ApplyDetail::getWorktypeId)
                .leftJoin(Member.class,Member::getId,ApplyDetail::getMemberId)
                .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId)
                .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
                .in(ApplyDetail::getUnionApplyId,unionApply.getId()));
        unionApplyBXDDTO.setEndTime(DateUtil.getMontageDate(unionApplyBXDDTO.getEndTime(),2));
        //总天数
@@ -771,9 +785,10 @@
            Optional<UnionApplyBXDDetailDTO> unionApplyBXDDDetailTO= unionApplyBXDDetailDTOList.stream().filter(
                    m->m.getApplyId().equals(insuranceApply.getId())).findFirst();
            BigDecimal serverCost = BigDecimal.ZERO;
            if(unionApplyBXDDDetailTO.isPresent()){
                UnionApplyBXDDetailDTO unionApplyBXDDetailDTO = unionApplyBXDDDetailTO.get();
                serverCost = unionApplyBXDDetailDTO.getServerMoney();
                BigDecimal dayServerMoney = unionApplyBXDDetailDTO.getServerMoney().divide(new BigDecimal(maxDays),2, RoundingMode.HALF_UP);
                price = Constants.formatBigdecimal(price).add(Constants.formatBigdecimal(dayServerMoney));
@@ -808,9 +823,22 @@
                        .filter(m->Constants.equalsInteger(m.getApplyId(),(insuranceApply.getId()))).collect(Collectors.toList())) {
                    applyDetail.setPrice(price);
                    applyDetail.setFee(price.multiply(new BigDecimal(maxDays)));
                    applyDetail.setStartTime(unionApplyBXDDTO.getStartTime());
                    applyDetail.setEndTime(unionApplyBXDDTO.getEndTime());
                    MemberInsurance memberInsurance = new MemberInsurance(applyDetail,user.getId());
                    memberInsurance.setBdCode(unionApplyBXDDTO.getCode());
                    memberInsurance.setRelationType(Constants.ZERO);
                    memberInsuranceList.add(memberInsurance);
                    //更新员工投保时间
                    memberMapper.update(null,new UpdateWrapper<Member>()
                            .lambda()
                            .set(Member::getStartTime,memberInsurance.getStartTime())
                            .set(Member::getEndTime,memberInsurance.getEndTime())
                            .set(Member::getDuId,memberInsurance.getDuId())
                            .set(Member::getWorktypeId,memberInsurance.getWorktypeId())
                            .eq(Member::getId, memberInsurance.getMemberId())
                    );
                }
                memberInsuranceJoinMapper.insertBatchSomeColumn(memberInsuranceList);
            }
@@ -825,6 +853,7 @@
                    .set(InsuranceApply::getEndTime,unionApplyBXDDTO.getEndTime())
                    .set(InsuranceApply::getEditDate,new Date())
                    .set(InsuranceApply::getEditor,user.getId())
                    .set(InsuranceApply::getServerCost,serverCost)
                    .set(InsuranceApply::getCode,unionApplyBXDDTO.getCode())
                    .eq(InsuranceApply::getId,insuranceApply.getId()));
            //更新投保单明细金额