MrShi
2024-12-20 be290203369f9cbd618948901f79db5964bf01a6
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java
@@ -75,13 +75,20 @@
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public Integer create(YwContract model) {
        isParamValidCreated(model);
        model.setCreator(model.getLoginUserInfo().getId());
        model.setIsdeleted(Constants.ZERO);
        model.setCreateDate(new Date());
        model.setStatus(Constants.ZERO);
        model.setEditDate(model.getCreateDate());
        model.setEditor(model.getCreator());
        model.setStatus(Constants.ZERO);//待执行
        if(model.getStartDate().getTime() > System.currentTimeMillis()){
            model.setStatus(Constants.ZERO);
        }else if(model.getStartDate().getTime() <= System.currentTimeMillis() && model.getEndDate().getTime() > System.currentTimeMillis()){
            model.setStatus(Constants.ONE);
        }else{
            model.setStatus(Constants.TWO);
        }
        model.setRemark(getRemarlByParam(model));
        ywContractMapper.insert(model);
        dealDetailListBiz(model);//处理条款信息
@@ -308,16 +315,19 @@
                .replace("{param3}",DateUtil.getDateLongSlash(model.getBtDate()))
                .replace("{param4}",fee.compareTo(new BigDecimal(0)) >=0?"收":"付")
                .replace("{param5}",(fee.compareTo(new BigDecimal(0)) >=0?
                        Constants.formatBigdecimal2Float(model.getBtFee()).intValue()
                        :(Constants.formatBigdecimal2Float(model.getBtFee()).intValue() * -1))+"" );
                        Constants.formatBigdecimal2Float(model.getBtFee())
                        :(Constants.formatBigdecimal2Float(model.getBtFee()).multiply(new BigDecimal(-1)))).toString());
        return  str;
    }
    private String getbackRentLogByParam(YwContract model) {
        BigDecimal fee = Constants.formatBigdecimal(model.getBtFee());
        String str = "【退租日{param1},退租原因:{param2},退租协议中统计的费用总计{param3}元。】";
        String str = "【退租日{param1},退租原因:{param2},退租协议中统计的费用总计需{param4}{param5}元。】";
        str = str.replace("{param1}",DateUtil.getDateLongSlash(model.getBtDate()))
                .replace("{param2}",StringUtils.defaultString(model.getBtInfo(),""))
                .replace("{param3}",Constants.formatBigdecimal2Float(model.getBtFee()).doubleValue()+"");
                .replace("{param4}",fee.compareTo(new BigDecimal(0)) >=0?"收":"付")
                .replace("{param5}",(fee.compareTo(new BigDecimal(0)) >=0?
                        Constants.formatBigdecimal2Float(model.getBtFee())
                        :(Constants.formatBigdecimal2Float(model.getBtFee()).multiply(new BigDecimal(-1)))).toString());
        return  str;
    }
@@ -354,9 +364,6 @@
        update.setBtFee(param.getBtFee());
        update.setBtRemark(getbackRentRemarkByParam(param));
        ywContractMapper.updateById(update);
//        if(1==1){
//            throw new BusinessException(ResponseStatus.NOT_ALLOWED);
//        }
        dealLogBiz(param,Constants.YwLogType.CONTRACT_BACK, param.getLoginUserInfo().getRealname(),getbackRentLogByParam(param));
        return param.getId();
    }
@@ -418,16 +425,8 @@
                        closeBills.add(bill);
                        noBills.add(bill);
                    }
//                    if(bill.getStartDate().getTime()>param.getEditDate().getTime()){
//                        //如果还没开始,账单直接关闭
//                        closeBills.add(bill);
//                        noBills.add(bill);
//                    }else{
//                        canBills.add(bill);
//                    }
                }else  if(Constants.equalsInteger(bill.getPayStatus(),Constants.ONE) ){
                    if(bill.getStartDate().getTime()>param.getBtDate().getTime()){
//                    if(bill.getEndDate().getTime()<param.getEditDate().getTime()){
                        //如果已结清,账单直接关闭
                        noBills.add(bill);
                    }else{
@@ -468,8 +467,8 @@
                    }else if(fee.compareTo(new BigDecimal(0)) < 0){
                        //如果账单还有款待收,则保持状态不变
                    }
                    b.setReceivableFee(editBill.getReceivableFee());
                }
                b.setReceivableFee(editBill.getReceivableFee());
                b.setEditDate(param.getEditDate());
                b.setEditor(param.getEditor());
                b.setBtActDate(param.getBtActDate());
@@ -490,6 +489,8 @@
                addBill.setContractId(param.getId());
                addBill.setType(Constants.TWO);
                addBill.setStatus(Constants.ZERO);
                addBill.setTotleFee(addBill.getReceivableFee());
                addBill.setCompanyId(param.getCompanyId());
                if(Constants.equalsInteger(addBill.getFeeType(),Constants.ONE)){
                    addBill.setStartDate(addBill.getPlanPayDate());
                    addBill.setEndDate(addBill.getPlanPayDate());
@@ -699,13 +700,19 @@
        }
        int num =1;
        for(int i=0;i<billList1.size();i++){
            if(Constants.formatBigdecimal(billList1.get(i).getReceivableFee()).compareTo(new BigDecimal(0)) == 0){
                billList1.get(i).setPayStatus(Constants.ONE);
            }
            if(Constants.equalsInteger(billList1.get(i).getCostType(),Constants.ZERO)){
                billList1.get(i).setSortnum(num);
                num++;
            }
        }
        for(int i=0;i<billList2.size();i++){
            if(Constants.equalsInteger(billList1.get(i).getCostType(),Constants.ONE)) {
            if(Constants.formatBigdecimal(billList2.get(i).getReceivableFee()).compareTo(new BigDecimal(0)) == 0){
                billList2.get(i).setPayStatus(Constants.ONE);
            }
            if(Constants.equalsInteger(billList2.get(i).getCostType(),Constants.ONE)) {
                billList2.get(i).setSortnum(num);
                num++;
            }
@@ -1327,9 +1334,13 @@
        if(model.getBillList()!=null && model.getBillList().size()>0){
            for(YwContractBill bill: model.getBillList()){
                //付款状态:0=待收款;1=已结清;2=部分结清;3=待付款;4=待退款;5=已关闭
                if( Constants.formatBigdecimal(bill.getReceivableFee()).compareTo(new BigDecimal(0)) ==0){
                    //如果还没开始,账单直接关闭
                    continue;
                }
                if(Constants.equalsInteger(bill.getPayStatus(),Constants.ZERO)
                        ||Constants.equalsInteger(bill.getPayStatus(),Constants.THREE)){
                    if(bill.getStartDate().getTime()>nowEnd){
                    if(bill.getStartDate().getTime()>nowEnd ){
                        //如果还没开始,账单直接关闭
                        continue;
                    }