From 96d14e27fccd18420f775dd22bfccd5385f5c929 Mon Sep 17 00:00:00 2001 From: winter Date: Sun, 7 Jul 2024 09:40:04 +0800 Subject: [PATCH] fix --- .../iformall/domain/po/WxBillProperty.java | 1 - .../domain/po/WxPropertyContract.java | 1 - .../domain/vo/WxBillFeesStandardsVo.java | 13 ----- .../service/helper/WxRentContractHelper.java | 32 ++++++------ .../impl/WxPropertyContractServiceImpl.java | 51 ++++++++++--------- 5 files changed, 42 insertions(+), 56 deletions(-) delete mode 100644 mallinkService/src/main/java/com/iformall/domain/vo/WxBillFeesStandardsVo.java diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillProperty.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillProperty.java index c6de3dfbe..0e931fdd2 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillProperty.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillProperty.java @@ -7,7 +7,6 @@ import com.iformall.common.SortColumn; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.WxBillBaseEntity; import com.iformall.domain.vo.WxBillFeesStandardsListVo; -import com.iformall.domain.vo.WxBillFeesStandardsVo; import com.iformall.enums.EnumBillAllType; import lombok.Data; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxPropertyContract.java b/mallinkService/src/main/java/com/iformall/domain/po/WxPropertyContract.java index 668ea3b53..5964084e0 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxPropertyContract.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxPropertyContract.java @@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.iformall.common.SortColumn; import com.iformall.domain.po.base.TenantEntity; -import com.iformall.domain.vo.WxBillFeesStandardsVo; import com.iformall.enums.EnumPriceUnit; import com.iformall.enums.EnumPropertyCreateType; import com.iformall.enums.EnumRentContractAdjustPeriod; diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxBillFeesStandardsVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxBillFeesStandardsVo.java deleted file mode 100644 index 9e17cd4fd..000000000 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxBillFeesStandardsVo.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.iformall.domain.vo; - -import lombok.Data; -import java.io.Serializable; -import java.util.List; -@Data -public class WxBillFeesStandardsVo implements Serializable { - - private static final long serialVersionUID = 1L; - private List fixedFeeStandards; - private List unFixedFeeStandards; - -} diff --git a/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java b/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java index cc754dbe7..d9825e86c 100644 --- a/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java +++ b/mallinkService/src/main/java/com/iformall/service/helper/WxRentContractHelper.java @@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSONObject; import com.iformall.domain.po.WxFeesStandards; import com.iformall.domain.po.WxRentContract; import com.iformall.domain.vo.WxBillFeesStandardsListVo; -import com.iformall.domain.vo.WxBillFeesStandardsVo; import com.iformall.enums.*; import com.iformall.service.impl.WxRentContractServiceImpl; import com.iformall.utils.Constant; @@ -478,31 +477,32 @@ public class WxRentContractHelper { } //其他标准计费项 - public static WxBillFeesStandardsVo getStandardsBillList(List feesStandarsList,Date billStartDate,Date billEndDate) { + public static List getStandardsBillList(List feesStandarsList,Date billStartDate,Date billEndDate,boolean isFixed) { if (null == feesStandarsList || feesStandarsList.size() <= 0 ) { return null; } - WxBillFeesStandardsVo wvo = new WxBillFeesStandardsVo(); - List fixedList = new ArrayList(); - List unFixedList = new ArrayList(); + List retList = new ArrayList(); for (int i = 0 ; i < feesStandarsList.size() ; i ++) { WxBillFeesStandardsListVo vo = new WxBillFeesStandardsListVo(); WxFeesStandards fees = feesStandarsList.get(i); vo.setBillName(fees.getName()); - if (fees.getFixedPrice().intValue() == EnumYesOrNo.YES.getCode().intValue() && null != billStartDate && null != billEndDate) { - vo.setStart(billStartDate); - vo.setEnd(billEndDate); - vo.setReceiveDate(DateUtils.getDaySet(billStartDate,Calendar.DATE,-1)); - fixedList.add(vo); + //如果是一次性的,账单只有一个 + if (isFixed) { + if (fees.getFixedPrice().intValue() == EnumYesOrNo.YES.getCode().intValue() && null != billStartDate && null != billEndDate) { + vo.setStart(billStartDate); + vo.setEnd(billEndDate); + vo.setReceiveDate(DateUtils.getDaySet(billStartDate,Calendar.DATE,-1)); + } + vo.setFeeStandards(fees); + retList.add(vo); }else { - unFixedList.add(vo); + if (fees.getFixedPrice().intValue() == EnumYesOrNo.NO.getCode().intValue()) { + vo.setFeeStandards(fees); + retList.add(vo); + } } - vo.setFeeStandards(fees); - } - wvo.setFixedFeeStandards(fixedList); - wvo.setUnFixedFeeStandards(unFixedList); - return wvo; + return retList; } private static boolean isFirstDay(Date date){ diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java index 48c4b7f51..f380729b7 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -14,7 +14,6 @@ import com.iformall.domain.po.base.BaseEntity; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.BillTimeVo; import com.iformall.domain.vo.WxBillFeesStandardsListVo; -import com.iformall.domain.vo.WxBillFeesStandardsVo; import com.iformall.enums.*; import com.iformall.exception.MallinkException; import com.iformall.mapper.*; @@ -645,7 +644,8 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantInfo(wxPropertyContract); SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); Map resultMap = new HashedMap(); - List resultList = new ArrayList<>(); + List propertyResultList = new ArrayList<>(); + List allResultList = new ArrayList<>(); Date endDate = null; if(yearList.size() > 1){ @@ -673,13 +673,8 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService billStartDate = billTimeVoList.get(0).getStartDate(); billEndDate = billTimeVoList.get(billTimeVoList.size()-1).getEndDate(); } - WxBillFeesStandardsVo standardsVo = WxRentContractHelper.getStandardsBillList(wxPropertyContract.getFeesStardarsList(),billStartDate,billEndDate); - List fixedList = null; - List unFixedList = null; - if (null != standardsVo) { - fixedList = standardsVo.getFixedFeeStandards(); - unFixedList = standardsVo.getUnFixedFeeStandards(); - } + //一次性费用的,只有一个账单。 + List fixedList = WxRentContractHelper.getStandardsBillList(wxPropertyContract.getFeesStardarsList(),billStartDate,billEndDate,true); int index = 0; @@ -688,6 +683,10 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService //计算金额 String needpay = "0"; String standarsTotal = "0"; + + //非一次性费用的,跟随物业账单的周期 + List unFixedList = WxRentContractHelper.getStandardsBillList(wxPropertyContract.getFeesStardarsList(),billStartDate,billEndDate,true); + boolean flag = false; //超过1年 @@ -734,39 +733,41 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService } ++billcount; + //物业主账单 WxBillProperty wxBillProperty = generateBillProperty(wxPayAccountBill,wxPropertyContract,isPreview,billTimeVo.getStartDate(),billTimeVo.getEndDate(),billTimeVo.getReceiveDate(),needpay,userId,billcount,shopInfo,standarsTotal,""); + //非一次性账单 wxBillProperty.setUnFixedbillFeesStandardsList(unFixedList); - - resultList.add(wxBillProperty); + //每个非从一次性都要创建账单 + if (null != unFixedList) { + for (int j = 0 ; j < unFixedList.size(); j ++ ) { + WxBillFeesStandardsListVo svo = unFixedList.get(j); + WxBillProperty property = generateBillPropertyByBillStandards(wxPayAccountBill,wxPropertyContract,isPreview,userId,svo,billcount,shopInfo); + allResultList.add(property); + } + } + //主账单列表 + propertyResultList.add(wxBillProperty); + //所有账单列表 + allResultList.add(wxBillProperty); } if (null != fixedList) { for (int i = 0 ; i < fixedList.size(); i ++ ) { WxBillFeesStandardsListVo svo = fixedList.get(i); - ++billcount; - WxBillProperty property = generateBillPropertyByBillStandards(wxPayAccountBill,wxPropertyContract,isPreview,userId,svo,billcount,shopInfo); - resultList.add(property); - } - } - - if (null != unFixedList) { - for (int i = 0 ; i < unFixedList.size(); i ++ ) { - WxBillFeesStandardsListVo svo = unFixedList.get(i); - ++billcount; WxBillProperty property = generateBillPropertyByBillStandards(wxPayAccountBill,wxPropertyContract,isPreview,userId,svo,billcount,shopInfo); - resultList.add(property); + allResultList.add(property); } } //批量生成预账单 - if(saveDb && resultList.size() > 0 ) { - wxBillPropertyMapper.insertBills(resultList); + if(saveDb && allResultList.size() > 0 ) { + wxBillPropertyMapper.insertBills(allResultList); //for (int i = 0 ; i < resultList.size() ; i++) { // wxBillPropertyMapper.insert(resultList.get(i)); //} } resultMap.put("billcount",billcount); - resultMap.put("billList",resultList); + resultMap.put("billList",propertyResultList); return resultMap; }