chengf
2025-07-04 a26c074129afced8fe87e300fb501030fde0c056
添加二级费用项
5个文件已删除
69个文件已修改
1个文件已添加
2080 ■■■■■ 已修改文件
java110-bean/src/main/java/com/java110/dto/fee/BillOweFeeDto.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/fee/FeeConfigDto.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/fee/FeeDto.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/fee/FeeReceiptDto.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/fee/PayFeeDetailDto.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/fee/PayFeeDto.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/importData/ImportFee.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/importData/ImportFeeDto.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/importData/ImportRoomFee.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/meter/ImportExportMeterWaterDto.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/payFee/PayFeeDetailMonthDto.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/payFee/PayFeeRuleDto.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/payFee/PayFeeSubDto.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/payFee/ReturnPayFeeDto.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/report/QueryStatisticsDto.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/report/ReportDeposit.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/report/ReportFeeDto.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/reportFee/ReportFeeMonthStatisticsDto.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/reportFee/ReportFeeMonthStatisticsPrepaymentDto.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/reportFee/ReportFeeYearCollectionDto.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/reportFee/ReportOwnerPayFeeDto.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/po/fee/PayFeeConfigPo.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/po/fee/PayFeePo.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/po/fee/ReturnPayFeePo.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/po/importFee/ImportFeePo.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/po/payFee/PayFeeDetailMonthPo.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/po/payFee/PayFeeRulePo.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/po/payFee/PayFeeSubPo.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/po/payFee/ReturnPayFeePo.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/vo/api/ApiMainFeeVo.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/vo/api/community/ApiCommunityDataVo.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/vo/api/fee/ApiFeeDataVo.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/vo/api/feeConfig/ApiFeeConfigDataVo.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/vo/api/returnPayFee/ApiReturnPayFeeDataVo.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-core/src/main/java/com/java110/core/client/CosUploadTemplate.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-db/src/main/resources/mapper/fee/FeeConfigServiceDaoImplMapper.xml 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-db/src/main/resources/mapper/fee/ImportFeeServiceDaoImplMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-db/src/main/resources/mapper/fee/PayFeeConfigV1ServiceDaoImplMapper.xml 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-db/src/main/resources/mapper/fee/PayFeeSubV1ServiceDaoImplMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-db/src/main/resources/mapper/fee/PayFeeV1ServiceDaoImplMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-db/src/main/resources/mapper/fee/ReturnPayFeeServiceDaoImplMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-db/src/main/resources/mapper/fee/ReturnPayFeeV1ServiceDaoImplMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-db/src/main/resources/mapper/report/ReportFeeMonthStatisticsPrepaymentServiceDaoImplMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-db/src/main/resources/mapper/report/ReportFeeMonthStatisticsServiceDaoImplMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-db/src/main/resources/mapper/report/ReportFeeServiceDaoImplMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-interface/src/main/java/com/java110/intf/fee/IPayFeeConfigV1InnerServiceSMO.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-utils/src/main/java/com/java110/utils/util/DateUtil.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-api/pom-boot.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-api/pom-cloud.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-api/src/main/java/com/java110/api/configuration/ServiceConfiguration.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-api/src/main/java/com/java110/api/importData/adapt/ImportMeterWaterFeeDataCleaningAdapt.java 65 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-community/src/main/java/com/java110/community/cmd/ownerRepair/RepairDispatchCmd.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-community/src/main/java/com/java110/community/cmd/parkingSpaceApply/ListParkingSpaceApplyCmd.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-community/src/main/java/com/java110/community/cmd/repair/SaveRepairSettingCmd.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-fee/src/main/java/com/java110/fee/cmd/fee/PayFeeCmd.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-fee/src/main/java/com/java110/fee/cmd/feeConfig/SaveFeeConfigCmd.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-fee/src/main/java/com/java110/fee/cmd/feeConfig/SecondaryFeeTypeCdTbApi.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-fee/src/main/java/com/java110/fee/cmd/meterWater/SaveMeterWaterCmd.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-fee/src/main/java/com/java110/fee/dao/IPayFeeConfigV1ServiceDao.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-fee/src/main/java/com/java110/fee/dao/impl/PayFeeConfigV1ServiceDaoImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-fee/src/main/java/com/java110/fee/feeMonth/IPayFeeMonthHelp.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-fee/src/main/java/com/java110/fee/feeMonth/PayFeeMonthHelp.java 301 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-fee/src/main/java/com/java110/fee/feeMonth/PayFeeMonthImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-fee/src/main/java/com/java110/fee/smo/impl/PayFeeConfigV1InnerServiceSMOImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-job/src/main/java/com/java110/job/cmd/userDownloadFile/ListUserDownloadFileCmd.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-job/src/main/java/com/java110/job/export/adapt/ReportListOweFeeAdapt.java 356 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-job/src/main/java/com/java110/job/export/adapt/ReportOweFeeDetailAdapt.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-job/src/main/java/com/java110/job/export/adapt/ReportPayFeeDepositAdapt.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-job/src/main/java/com/java110/job/export/adapt/ReportQuestionAnswerDetailAdapt.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-job/src/main/java/com/java110/job/export/adapt/ReportRepairDetailAdapt.java 213 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-job/src/main/java/com/java110/job/importData/adapt/ImportRoomFeeQueueDataAdapt.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-job/src/main/java/com/java110/job/task/noticeStaff/NoticeStaffTaskTemplate.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-user/src/main/java/com/java110/user/cmd/owner/QueryAppOwnerMembersCmd.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot/src/main/resources/application-debug.yml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/fee/BillOweFeeDto.java
@@ -38,6 +38,8 @@
    private String payObjId;
    private String curBill;
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private String feeTypeName;
    public String getFeeTypeCd() {
@@ -48,6 +50,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public String getOweId() {
        return oweId;
    }
java110-bean/src/main/java/com/java110/dto/fee/FeeConfigDto.java
@@ -45,6 +45,8 @@
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private String computingFormula;
    private String computingFormulaName;
    private String additionalAmount;
@@ -118,6 +120,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public String getComputingFormula() {
        return computingFormula;
    }
java110-bean/src/main/java/com/java110/dto/fee/FeeDto.java
@@ -36,6 +36,8 @@
    private String incomeObjId;
    private String incomeObjName;
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private Date startTime;
    private Date endTime;
    private String communityId;
@@ -202,6 +204,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public String getCommunityId() {
        return communityId;
    }
java110-bean/src/main/java/com/java110/dto/fee/FeeReceiptDto.java
@@ -27,6 +27,8 @@
    private String[] receiptIds;
    private String objType;
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private String feeName;
    private String payObjId;
    private String payObjName;
@@ -139,6 +141,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public String[] getReceiptIds() {
        return receiptIds;
    }
java110-bean/src/main/java/com/java110/dto/fee/PayFeeDetailDto.java
@@ -30,6 +30,8 @@
    private String payOrderId;
    private String convertAmount;
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private String feeTypeCdName;
    private String feeName;
    private String payObjName;
@@ -207,6 +209,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public String getFeeTypeCdName() {
        return feeTypeCdName;
    }
java110-bean/src/main/java/com/java110/dto/fee/PayFeeDto.java
@@ -16,6 +16,8 @@
    private String feeId;
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private String communityId;
    private String payerObjId;
    private String incomeObjId;
@@ -50,6 +52,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public String getCommunityId() {
        return communityId;
    }
java110-bean/src/main/java/com/java110/dto/importData/ImportFee.java
@@ -12,6 +12,8 @@
    private String configId;
    private String communityId;
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private String squarePrice;
    private String additionalAmount;
    private String isDefault;
@@ -48,6 +50,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public String getSquarePrice() {
        return squarePrice;
    }
java110-bean/src/main/java/com/java110/dto/importData/ImportFeeDto.java
@@ -16,6 +16,8 @@
public class ImportFeeDto extends PageDto implements Serializable {
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private String feeTypeCdName;
    private String importFeeId;
    private String communityId;
@@ -36,6 +38,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public String getImportFeeId() {
        return importFeeId;
    }
java110-bean/src/main/java/com/java110/dto/importData/ImportRoomFee.java
@@ -55,6 +55,8 @@
    private String configId;
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private String receivableAmount;
@@ -280,6 +282,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public String getPayerObjName() {
        return payerObjName;
    }
java110-bean/src/main/java/com/java110/dto/meter/ImportExportMeterWaterDto.java
@@ -34,6 +34,8 @@
    private String userId;
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private String batchId;
@@ -165,6 +167,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public String getBatchId() {
        return batchId;
    }
java110-bean/src/main/java/com/java110/dto/payFee/PayFeeDetailMonthDto.java
@@ -61,6 +61,8 @@
    private String objFpcId;
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private List<FeeAttrDto> feeAttrs;
java110-bean/src/main/java/com/java110/dto/payFee/PayFeeRuleDto.java
@@ -19,6 +19,8 @@
    private String maxTime;
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private String curYearMonth;
    private String batchId;
    private String userId;
@@ -56,6 +58,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public String getCurYearMonth() {
        return curYearMonth;
    }
java110-bean/src/main/java/com/java110/dto/payFee/PayFeeSubDto.java
@@ -18,6 +18,8 @@
    private String maxTime;
    private String amount;
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private String batchId;
    private String feeId;
    private String userId;
@@ -66,6 +68,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public String getBatchId() {
        return batchId;
    }
java110-bean/src/main/java/com/java110/dto/payFee/ReturnPayFeeDto.java
@@ -22,6 +22,8 @@
    private String reason;
    private String primeRate;
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private String payTime;
    private String detailId;
    private String receivableAmount;
@@ -100,6 +102,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public String getPayTime() {
        return payTime;
    }
java110-bean/src/main/java/com/java110/dto/report/QueryStatisticsDto.java
@@ -30,6 +30,8 @@
    private String link;
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private String[] feeTypeCds;
    private String[] unitIds;
@@ -122,6 +124,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public String[] getUnitIds() {
        return unitIds;
    }
java110-bean/src/main/java/com/java110/dto/report/ReportDeposit.java
@@ -19,6 +19,8 @@
    private String incomeObjId;
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private String startTime;
@@ -124,6 +126,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public String getStartTime() {
        return startTime;
    }
java110-bean/src/main/java/com/java110/dto/report/ReportFeeDto.java
@@ -18,6 +18,8 @@
    private String incomeObjId;
    private String incomeObjName;
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private Date startTime;
    private Date endTime;
    private String communityId;
@@ -143,6 +145,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public Date getStartTime() {
        return startTime;
    }
java110-bean/src/main/java/com/java110/dto/reportFee/ReportFeeMonthStatisticsDto.java
@@ -133,6 +133,8 @@
    //费用类型
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    //费用类型名称
    private String feeTypeCdName;
@@ -599,6 +601,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public String getPreferentialAmount() {
        return preferentialAmount;
    }
java110-bean/src/main/java/com/java110/dto/reportFee/ReportFeeMonthStatisticsPrepaymentDto.java
@@ -137,6 +137,8 @@
    //费用类型
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    //费用类型名称
    private String feeTypeCdName;
@@ -510,6 +512,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public String getPreferentialAmount() {
        return preferentialAmount;
    }
java110-bean/src/main/java/com/java110/dto/reportFee/ReportFeeYearCollectionDto.java
@@ -30,6 +30,8 @@
    private String objType;
    private String receivableAmount;
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private String feeTypeCdName;
    private List<ReportFeeYearCollectionDetailDto> reportFeeYearCollectionDetailDtos;
@@ -176,6 +178,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public String getFeeTypeCdName() {
        return feeTypeCdName;
    }
java110-bean/src/main/java/com/java110/dto/reportFee/ReportOwnerPayFeeDto.java
@@ -49,6 +49,8 @@
    private String feeEndTime;
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private List<ReportOwnerPayFeeDto> reportOwnerPayFeeDtos;
@@ -292,4 +294,21 @@
    public void setFeeTypeCd(String feeTypeCd) {
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
}
java110-bean/src/main/java/com/java110/po/fee/PayFeeConfigPo.java
@@ -16,6 +16,8 @@
    private String communityId;
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private String squarePrice;
    private String additionalAmount;
@@ -67,6 +69,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public String getSquarePrice() {
        return squarePrice;
    }
java110-bean/src/main/java/com/java110/po/fee/PayFeePo.java
@@ -14,6 +14,8 @@
    private String feeId;
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private String communityId;
    private String payerObjId;
    private String incomeObjId;
@@ -52,6 +54,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public String getCommunityId() {
        return communityId;
    }
java110-bean/src/main/java/com/java110/po/fee/ReturnPayFeePo.java
@@ -17,6 +17,8 @@
    private String configId;
    private String feeId;
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private String detailId;
    private String cycles;
    ;
@@ -74,6 +76,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public String getDetailId() {
        return detailId;
    }
java110-bean/src/main/java/com/java110/po/importFee/ImportFeePo.java
@@ -5,6 +5,8 @@
public class ImportFeePo implements Serializable {
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private String statusCd = "0";
    private String importFeeId;
    private String communityId;
@@ -18,6 +20,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public String getStatusCd() {
        return statusCd;
    }
java110-bean/src/main/java/com/java110/po/payFee/PayFeeDetailMonthPo.java
@@ -39,6 +39,8 @@
    private String objFpcId;
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    public String getDetailMonth() {
@@ -248,4 +250,21 @@
    public void setFeeTypeCd(String feeTypeCd) {
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
}
java110-bean/src/main/java/com/java110/po/payFee/PayFeeRulePo.java
@@ -31,6 +31,8 @@
    private String maxTime;
    private String amount;
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private String curYearMonth;
    private String statusCd = "0";
    private String batchId;
@@ -70,6 +72,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public String getCurYearMonth() {
        return curYearMonth;
    }
java110-bean/src/main/java/com/java110/po/payFee/PayFeeSubPo.java
@@ -30,6 +30,8 @@
    private String maxTime;
private String amount;
private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
private String statusCd = "0";
private String batchId;
private String feeId;
java110-bean/src/main/java/com/java110/po/payFee/ReturnPayFeePo.java
@@ -31,6 +31,8 @@
    private String reason;
    private String primeRate;
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private String payTime;
    private String detailId;
    private String receivableAmount;
@@ -73,6 +75,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public String getPayTime() {
        return payTime;
    }
java110-bean/src/main/java/com/java110/vo/api/ApiMainFeeVo.java
@@ -14,6 +14,8 @@
    private String feeId;
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private String startTime;
    private String endTime;
    private String amount;
@@ -63,6 +65,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public String getSquarePrice() {
        return squarePrice;
    }
java110-bean/src/main/java/com/java110/vo/api/community/ApiCommunityDataVo.java
@@ -27,7 +27,15 @@
    private String startTime;
    private String endTime;
    private String createTime;
    private String feePrice;
    public String getFeePrice() {
        return feePrice;
    }
    public void setFeePrice(String feePrice) {
        this.feePrice = feePrice;
    }
    private String storeId;
java110-bean/src/main/java/com/java110/vo/api/fee/ApiFeeDataVo.java
@@ -18,6 +18,8 @@
    private String amount;
    private String incomeObjId;
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private String startTime;
    private String endTime;
    private String communityId;
@@ -119,6 +121,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public String getStartTime() {
        return startTime;
    }
java110-bean/src/main/java/com/java110/vo/api/feeConfig/ApiFeeConfigDataVo.java
@@ -6,6 +6,8 @@
    private String configId;
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private String feeName;
    private String feeFlag;
    private String startTime;
@@ -53,6 +55,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public String getFeeName() {
        return feeName;
    }
java110-bean/src/main/java/com/java110/vo/api/returnPayFee/ApiReturnPayFeeDataVo.java
@@ -11,6 +11,8 @@
    private String reason;
    private String primeRate;
    private String feeTypeCd;
private String secondaryFeeTypeCd;
private String secondaryFeeTypeCdName;
    private String payTime;
    private String detailId;
    private String receivableAmount;
@@ -83,6 +85,23 @@
        this.feeTypeCd = feeTypeCd;
    }
public String getSecondaryFeeTypeCd() {
        return secondaryFeeTypeCd;
    }
    public void setSecondaryFeeTypeCd(String secondaryFeeTypeCd) {
        this.secondaryFeeTypeCd= secondaryFeeTypeCd;
    }
    public String getSecondaryFeeTypeCdName() {
        return secondaryFeeTypeCdName;
    }
    public void setSecondaryFeeTypeCdName(String secondaryFeeTypeCdName) {
        this.secondaryFeeTypeCdName = secondaryFeeTypeCdName;
    }
    public String getPayTime() {
        return payTime;
    }
java110-core/src/main/java/com/java110/core/client/CosUploadTemplate.java
@@ -139,11 +139,7 @@
        ByteArrayInputStream fis = null;
        try {
            ossClient = COSUtil.getCOSClient();
            ins = COSUtil.getInputStreamByCOS(ossClient, remotePath + fileName);
            if (ins == null) {
                // 处理流为null的异常情况(如抛自定义异常、打日志等)
                throw new RuntimeException("Failed to get input stream from COS");
            }
            COSUtil.getInputStreamByCOS(ossClient, remotePath + fileName);
            byteOut = new ByteArrayOutputStream();
            byte[] buf = new byte[2048];
            int bufsize = 0;
java110-db/src/main/resources/mapper/fee/FeeConfigServiceDaoImplMapper.xml
@@ -16,8 +16,9 @@
    <!-- 查询费用配置信息(Business) add by wuxw 2018-07-03 -->
    <select id="getBusinessFeeConfigInfo" parameterType="Map" resultType="Map">
        select t.fee_type_cd,t.fee_type_cd feeTypeCd,t.computing_formula,t.computing_formula
        computingFormula,t.additional_amount,t.additional_amount additionalAmount,t.square_price,t.square_price
        select t.fee_type_cd,t.fee_type_cd feeTypeCd,
        t.secondary_fee_type_cd,t.secondary_fee_type_cd secondaryFeeTypeCd,s.secondary_fee_type_cd_name,s.secondary_fee_type_cd_name secondaryFeeTypeCdName,
        t.computing_formula,t.computing_formula computingFormula,t.additional_amount,t.additional_amount additionalAmount,t.square_price,t.square_price
        squarePrice,t.is_default,t.is_default isDefault,t.operate,t.config_id,t.config_id configId,t.fee_flag,t.fee_flag
        feeFlag,t.fee_name,t.fee_name feeName,t.start_time,t.start_time startTime,t.end_time,t.end_time
        endTime,t.community_id,t.community_id communityId,t.b_id,t.b_id bId,t.bill_type,t.bill_type billType,
@@ -25,6 +26,7 @@
        computingFormulaText,t.deduct_from,t.deduct_from deductFrom,t.pay_online payOnline,t.scale,t.decimal_place
        decimalPlace,t.units,t.prepayment_period,t.prepayment_period prepaymentPeriod
        from business_pay_fee_config t
        left join secondary_fee_type_cd_tb s on s.secondary_fee_type_cd = t.secondary_fee_type_cd
        where 1 =1
        <if test="feeTypeCd !=null and feeTypeCd != ''">
            and t.fee_type_cd= #{feeTypeCd}
@@ -133,7 +135,7 @@
    <!-- 查询费用配置信息 add by wuxw 2018-07-03 -->
    <select id="getFeeConfigInfo" parameterType="Map" resultType="Map">
        select t.fee_type_cd,t.fee_type_cd feeTypeCd,t.computing_formula,t.computing_formula
        select t.fee_type_cd,t.fee_type_cd feeTypeCd,t.secondary_fee_type_cd,t.secondary_fee_type_cd secondaryFeeTypeCd,s.secondary_fee_type_cd_name,s.secondary_fee_type_cd_name secondaryFeeTypeCdName,t.computing_formula,t.computing_formula
        computingFormula,t.additional_amount,t.additional_amount additionalAmount,t.status_cd,t.status_cd
        statusCd,t.square_price,t.square_price squarePrice,t.is_default,t.is_default isDefault,t.config_id,t.config_id
        configId,t.fee_flag,t.fee_flag feeFlag,t.fee_name,t.fee_name feeName,t.start_time,t.start_time
@@ -144,6 +146,7 @@
        deductFrom,td4.name computingFormulaName,t.pay_online payOnline,t.scale,t.decimal_place decimalPlace,t.units,
        t.prepayment_period,t.prepayment_period prepaymentPeriod,t.state
        from pay_fee_config t
        left join secondary_fee_type_cd_tb s on s.secondary_fee_type_cd = t.secondary_fee_type_cd
        left join t_dict td1 on t.fee_type_cd = td1.status_cd and td1.table_name = 'pay_fee_config' and
        td1.table_columns = 'fee_type_cd'
        left join t_dict td2 on t.fee_flag = td2.status_cd and td2.table_name = 'pay_fee_config' and td2.table_columns =
@@ -391,4 +394,34 @@
                #{paymentCycle}, #{computingFormulaText}, #{deductFrom}, #{payOnline}, #{scale}, #{decimalPlace},
                #{units}, #{prepaymentPeriod},#{state})
    </insert>
    <select id="selectSssShow" parameterType="Map" resultType="Map">
        select secondary_fee_type_cd secondaryFeeTypeCd,fee_type_cd feeTypeCd,secondary_fee_type_cd_name secondaryFeeTypeName,
               secondary_fee_type_cd,fee_type_cd,secondary_fee_type_cd_name
            from secondary_fee_type_cd_tb where 1 = 1
        <if test="feeTypeCd !=null and feeTypeCd != ''">
            and fee_type_cd = #{feeTypeCd}
        </if>
    </select>
    <select id="selectSss" parameterType="Map" resultType="Map">
        SELECT
            sft.secondary_fee_type_cd,sft.secondary_fee_type_cd AS secondaryFeeTypeCd,
            sft.fee_type_cd,sft.fee_type_cd AS feeTypeCd,
            sft.secondary_fee_type_cd_name,sft.secondary_fee_type_cd_name AS secondaryFeeTypeName
        FROM
            secondary_fee_type_cd_tb sft
                JOIN
            t_dict d1 ON sft.fee_type_cd = d1.status_cd
                JOIN
            t_dict d2 ON d1.name = d2.name
        WHERE 1 = 1
        <if test="feeTypeCd !=null and feeTypeCd != ''">
            and d2.status_cd = #{feeTypeCd}
            AND d1.status_cd != #{feeTypeCd};
        </if>
    </select>
</mapper>
java110-db/src/main/resources/mapper/fee/ImportFeeServiceDaoImplMapper.xml
@@ -17,9 +17,10 @@
    <!-- 查询费用导入信息 add by wuxw 2018-07-03 -->
    <select id="getImportFeeInfo" parameterType="Map" resultType="Map">
        select t.fee_type_cd,t.fee_type_cd feeTypeCd,t.status_cd,t.status_cd statusCd,t.import_fee_id,t.import_fee_id
        select t.fee_type_cd,t.fee_type_cd feeTypeCd,t.secondary_fee_type_cd,t.secondary_fee_type_cd secondaryFeeTypeCd,s.secondary_fee_type_cd_name,s.secondary_fee_type_cd_name secondaryFeeTypeCdNamet.status_cd,t.status_cd statusCd,t.import_fee_id,t.import_fee_id
        importFeeId,t.community_id,t.community_id communityId,t.create_time createTime,d.name feeTypeCdName,remark
        from import_fee t
        left join secondary_fee_type_cd_tb s on s.secondary_fee_type_cd = t.secondary_fee_type_cd
        left join t_dict d on t.fee_type_cd = d.status_cd and d.table_name = 'pay_fee_config' and d.table_columns = 'fee_type_cd'
        where 1 =1
        <if test="feeTypeCd !=null and feeTypeCd != ''">
java110-db/src/main/resources/mapper/fee/PayFeeConfigV1ServiceDaoImplMapper.xml
@@ -8,16 +8,16 @@
        insert into pay_fee_config(fee_type_cd, computing_formula, additional_amount, bill_type, computing_formula_text,
        square_price, payment_cd, is_default, config_id, fee_flag, fee_name, payment_cycle,
        start_time, end_time, community_id, deduct_from, pay_online, scale, decimal_place,
        units, prepayment_period,state)
        units, prepayment_period,state,secondary_fee_type_cd)
        values (#{feeTypeCd}, #{computingFormula}, #{additionalAmount}, #{billType}, #{computingFormulaText},
        #{squarePrice}, #{paymentCd}, #{isDefault}, #{configId}, #{feeFlag}, #{feeName}, #{paymentCycle},
        #{startTime}, #{endTime}, #{communityId}, #{deductFrom}, #{payOnline}, #{scale}, #{decimalPlace},
        #{units}, #{prepaymentPeriod},#{state})
        #{units}, #{prepaymentPeriod},#{state},#{secondaryFeeTypeCd})
    </insert>
    <!-- 查询收费项目信息 add by wuxw 2018-07-03 -->
    <select id="getPayFeeConfigInfo" parameterType="Map" resultType="Map">
        select t.fee_type_cd,t.fee_type_cd feeTypeCd,t.computing_formula,t.computing_formula
        select t.fee_type_cd,t.fee_type_cd feeTypeCd,t.secondary_fee_type_cd,t.secondary_fee_type_cd secondaryFeeTypeCd,s.secondary_fee_type_cd_name,s.secondary_fee_type_cd_name secondaryFeeTypeCdName,t.computing_formula,t.computing_formula
        computingFormula,t.additional_amount,t.additional_amount additionalAmount,t.bill_type,t.bill_type
        billType,t.computing_formula_text,t.computing_formula_text computingFormulaText,t.status_cd,t.status_cd
        statusCd,t.square_price,t.square_price squarePrice,t.payment_cd,t.payment_cd paymentCd,t.is_default,t.is_default
@@ -28,6 +28,7 @@
        prepaymentPeriod,
        t.state
        from pay_fee_config t
        left join secondary_fee_type_cd_tb s on s.secondary_fee_type_cd = t.secondary_fee_type_cd
        where 1 =1
        <if test="feeTypeCd !=null and feeTypeCd != ''">
            and t.fee_type_cd= #{feeTypeCd}
@@ -289,5 +290,15 @@
            limit #{page}, #{row}
        </if>
    </select>
    <select id="getFeeCd" resultType="Map" parameterType="Map">
        SELECT
            d1.status_cd
        FROM
            t_dict d1
                JOIN
            t_dict d2 ON d1.name = d2.name
        WHERE
            d2.status_cd = #{feeTypeCd}
          AND d1.status_cd != #{feeTypeCd};
    </select>
</mapper>
java110-db/src/main/resources/mapper/fee/PayFeeSubV1ServiceDaoImplMapper.xml
@@ -17,7 +17,7 @@
    <!-- 查询费用拆分信息 add by wuxw 2018-07-03 -->
    <select id="getPayFeeSubInfo" parameterType="Map" resultType="Map">
        select t.max_time,t.max_time maxTime,t.amount,t.fee_type_cd,t.fee_type_cd feeTypeCd,t.status_cd,t.status_cd
        select t.max_time,t.max_time maxTime,t.amount,t.fee_type_cd,t.fee_type_cd feeTypeCd,t.secondary_fee_type_cd,t.secondary_fee_type_cd secondaryFeeTypeCd,s.secondary_fee_type_cd_name,s.secondary_fee_type_cd_name secondaryFeeTypeCdNamet.status_cd,t.status_cd
        statusCd,t.batch_id,t.batch_id batchId,t.fee_id,t.fee_id feeId,t.user_id,t.user_id
        userId,t.pre_fee_id,t.pre_fee_id preFeeId,t.payer_obj_name,t.payer_obj_name
        payerObjName,t.income_obj_id,t.income_obj_id incomeObjId,t.config_id,t.config_id configId,t.fee_flag,t.fee_flag
java110-db/src/main/resources/mapper/fee/PayFeeV1ServiceDaoImplMapper.xml
@@ -13,12 +13,13 @@
    <!-- 查询费用明细信息 add by wuxw 2018-07-03 -->
    <select id="getPayFeeInfo" parameterType="Map" resultType="Map">
        select t.amount,t.fee_type_cd,t.fee_type_cd feeTypeCd,t.status_cd,t.status_cd statusCd,t.batch_id,t.batch_id
        select t.amount,t.fee_type_cd,t.fee_type_cd feeTypeCd,t.secondary_fee_type_cd,t.secondary_fee_type_cd secondaryFeeTypeCd,s.secondary_fee_type_cd_name,s.secondary_fee_type_cd_name secondaryFeeTypeCdNamet.status_cd,t.status_cd statusCd,t.batch_id,t.batch_id
        batchId,t.fee_id,t.fee_id feeId,t.user_id,t.user_id userId,t.income_obj_id,t.income_obj_id
        incomeObjId,t.config_id,t.config_id configId,t.fee_flag,t.fee_flag feeFlag,t.start_time,t.start_time
        startTime,t.end_time,t.end_time endTime,t.state,t.community_id,t.community_id
        communityId,t.payer_obj_type,t.payer_obj_type payerObjType,t.payer_obj_id,t.payer_obj_id payerObjId
        from pay_fee t
        left join secondary_fee_type_cd_tb s on s.secondary_fee_type_cd = t.secondary_fee_type_cd
        where 1 =1
        <if test="amount !=null and amount != ''">
            and t.amount= #{amount}
java110-db/src/main/resources/mapper/fee/ReturnPayFeeServiceDaoImplMapper.xml
@@ -20,7 +20,7 @@
        select
        t.reason,
        t.prime_rate,t.prime_rate primeRate,
        t.fee_type_cd,t.fee_type_cd feeTypeCd,
        t.fee_type_cd,t.fee_type_cd feeTypeCd,t.secondary_fee_type_cd,t.secondary_fee_type_cd secondaryFeeTypeCd,s.secondary_fee_type_cd_name,s.secondary_fee_type_cd_name secondaryFeeTypeCdName,
        t.pay_time,t.pay_time payTime,
        t.detail_id,t.detail_id detailId,
        t.receivable_amount,t.receivable_amount receivableAmount,
@@ -34,6 +34,7 @@
        t.b_id,t.b_id bId,
        t.community_id,t.community_id communityId
        from business_return_pay_fee t
        left join secondary_fee_type_cd_tb s on s.secondary_fee_type_cd = t.secondary_fee_type_cd
        where 1 =1
        <if test="reason !=null and reason != ''">
            and t.reason= #{reason}
@@ -146,7 +147,7 @@
        select
        t.reason,
        t.prime_rate,t.prime_rate primeRate,
        t.fee_type_cd,t.fee_type_cd feeTypeCd,
        t.fee_type_cd,t.fee_type_cd feeTypeCd,t.secondary_fee_type_cd,t.secondary_fee_type_cd secondaryFeeTypeCd,s.secondary_fee_type_cd_name,s.secondary_fee_type_cd_name secondaryFeeTypeCdName,
        t.pay_time,t.pay_time payTime,
        t.detail_id,t.detail_id detailId,
        t.receivable_amount,t.receivable_amount receivableAmount,
@@ -168,6 +169,7 @@
        pf.payer_obj_type payerObjType,
        pfa.value payerObjName
        from return_pay_fee t
        left join secondary_fee_type_cd_tb s on s.secondary_fee_type_cd = t.secondary_fee_type_cd
        inner join pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
        left join pay_fee_attrs pfa on t.fee_id = pfa.fee_id and pfa.spec_cd = '390012' and pfa.status_cd = '0'
        inner join t_dict d on t.fee_type_cd = d.status_cd and d.table_name = 'pay_fee_config' and d.table_columns =
@@ -254,7 +256,7 @@
        select
        t.reason,
        t.prime_rate,t.prime_rate primeRate,
        t.fee_type_cd,t.fee_type_cd feeTypeCd,
        t.fee_type_cd,t.fee_type_cd feeTypeCd,t.secondary_fee_type_cd,t.secondary_fee_type_cd secondaryFeeTypeCd,s.secondary_fee_type_cd_name,s.secondary_fee_type_cd_name secondaryFeeTypeCdName,
        t.pay_time,t.pay_time payTime,
        t.detail_id,t.detail_id detailId,
        t.receivable_amount,t.receivable_amount receivableAmount,
@@ -279,6 +281,7 @@
        fl.floor_id floorId,
        fl.floor_num floorNum
        from return_pay_fee t
        left join secondary_fee_type_cd_tb s on s.secondary_fee_type_cd = t.secondary_fee_type_cd
        inner join pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
        inner join t_dict d on t.fee_type_cd = d.status_cd and d.table_name = 'pay_fee_config' and d.table_columns =
        'fee_type_cd'
@@ -358,7 +361,7 @@
        select
        t.reason,
        t.prime_rate,t.prime_rate primeRate,
        t.fee_type_cd,t.fee_type_cd feeTypeCd,
        t.fee_type_cd,t.fee_type_cd feeTypeCd,t.secondary_fee_type_cd,t.secondary_fee_type_cd secondaryFeeTypeCd,s.secondary_fee_type_cd_name,s.secondary_fee_type_cd_name secondaryFeeTypeCdName,
        t.pay_time,t.pay_time payTime,
        t.detail_id,t.detail_id detailId,
        t.receivable_amount,t.receivable_amount receivableAmount,
@@ -383,6 +386,7 @@
        pa.pa_id paId,
        pa.num paNum
        from return_pay_fee t
        left join secondary_fee_type_cd_tb s on s.secondary_fee_type_cd = t.secondary_fee_type_cd
        inner join pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
        inner join t_dict d on t.fee_type_cd = d.status_cd and d.table_name = 'pay_fee_config' and d.table_columns =
        'fee_type_cd'
java110-db/src/main/resources/mapper/fee/ReturnPayFeeV1ServiceDaoImplMapper.xml
@@ -19,13 +19,14 @@
    <!-- 查询退费表信息 add by wuxw 2018-07-03 -->
    <select id="getReturnPayFeeInfo" parameterType="Map" resultType="Map">
        select t.reason,t.prime_rate,t.prime_rate primeRate,t.fee_type_cd,t.fee_type_cd feeTypeCd,t.pay_time,t.pay_time
        select t.reason,t.prime_rate,t.prime_rate primeRate,t.fee_type_cd,t.fee_type_cd feeTypeCd,t.secondary_fee_type_cd,t.secondary_fee_type_cd secondaryFeeTypeCd,s.secondary_fee_type_cd_name,s.secondary_fee_type_cd_name secondaryFeeTypeCdNamet.pay_time,t.pay_time
        payTime,t.detail_id,t.detail_id detailId,t.receivable_amount,t.receivable_amount
        receivableAmount,t.cycles,t.remark,t.status_cd,t.status_cd statusCd,t.received_amount,t.received_amount
        receivedAmount,t.fee_id,t.fee_id feeId,t.return_fee_id,t.return_fee_id returnFeeId,t.config_id,t.config_id
        configId,t.state,t.community_id,t.community_id communityId,t.apply_person_id applyPersonId,t.apply_person_name applyPersonName,
        t.audit_person_id auditPersonId,t.audit_person_name auditPersonName
        from return_pay_fee t
        left join secondary_fee_type_cd_tb s on s.secondary_fee_type_cd = t.secondary_fee_type_cd
        where 1 =1
        <if test="reason !=null and reason != ''">
            and t.reason= #{reason}
java110-db/src/main/resources/mapper/report/ReportFeeMonthStatisticsPrepaymentServiceDaoImplMapper.xml
@@ -1560,7 +1560,7 @@
    <!-- 查询费用配置信息 add by wuxw 2018-07-03 -->
    <select id="getFeeConfigInfo" parameterType="Map" resultType="Map">
        select t.fee_type_cd,t.fee_type_cd feeTypeCd,t.computing_formula,t.computing_formula
        select t.fee_type_cd,t.fee_type_cd feeTypeCd,t.secondary_fee_type_cd,t.secondary_fee_type_cd secondaryFeeTypeCd,s.secondary_fee_type_cd_name,s.secondary_fee_type_cd_name secondaryFeeTypeCdName,t.computing_formula,t.computing_formula
        computingFormula,t.additional_amount,t.additional_amount additionalAmount,t.status_cd,t.status_cd
        statusCd,t.square_price,t.square_price squarePrice,t.is_default,t.is_default isDefault,t.config_id,t.config_id
        configId,t.fee_flag,t.fee_flag feeFlag,t.fee_name,t.fee_name feeName,t.start_time,t.start_time
@@ -1569,6 +1569,7 @@
        t.payment_cd,t.payment_cycle,t.payment_cd paymentCd,t.payment_cycle
        paymentCycle,t.prepayment_period,t.prepayment_period prepaymentPeriod
        from pay_fee_config t,t_dict td1,t_dict td2,t_dict td3
        left join secondary_fee_type_cd_tb s on s.secondary_fee_type_cd = t.secondary_fee_type_cd
        where 1 =1
        and t.fee_type_cd = td1.status_cd
        and td1.table_name = 'pay_fee_config'
java110-db/src/main/resources/mapper/report/ReportFeeMonthStatisticsServiceDaoImplMapper.xml
@@ -2197,7 +2197,7 @@
    <!-- 查询费用配置信息 add by wuxw 2018-07-03 -->
    <select id="getFeeConfigInfo" parameterType="Map" resultType="Map">
        select t.fee_type_cd,t.fee_type_cd feeTypeCd,t.computing_formula,t.computing_formula
        select t.fee_type_cd,t.fee_type_cd feeTypeCd,t.secondary_fee_type_cd,t.secondary_fee_type_cd secondaryFeeTypeCd,s.secondary_fee_type_cd_name,s.secondary_fee_type_cd_name secondaryFeeTypeCdName,t.computing_formula,t.computing_formula
        computingFormula,t.additional_amount,t.additional_amount additionalAmount,t.status_cd,t.status_cd
        statusCd,t.square_price,t.square_price squarePrice,t.is_default,t.is_default isDefault,t.config_id,t.config_id
        configId,t.fee_flag,t.fee_flag feeFlag,t.fee_name,t.fee_name feeName,t.start_time,t.start_time
@@ -2205,6 +2205,7 @@
        td1.name feeTypeCdName,td2.name feeFlagName,t.bill_type billType,t.bill_type,td3.name billTypeName,
        t.payment_cd,t.payment_cycle,t.payment_cd paymentCd,t.payment_cycle paymentCycle
        from pay_fee_config t,t_dict td1,t_dict td2,t_dict td3
        left join secondary_fee_type_cd_tb s on s.secondary_fee_type_cd = t.secondary_fee_type_cd
        where 1 =1
        and t.fee_type_cd = td1.status_cd
        and td1.table_name = 'pay_fee_config'
java110-db/src/main/resources/mapper/report/ReportFeeServiceDaoImplMapper.xml
@@ -106,7 +106,7 @@
    <!-- 查询费用配置信息 add by wuxw 2018-07-03 -->
    <select id="getFeeConfigs" parameterType="com.java110.dto.fee.FeeConfigDto"
            resultType="com.java110.dto.fee.FeeConfigDto">
        select t.fee_type_cd,t.fee_type_cd feeTypeCd,t.computing_formula,t.computing_formula
        select t.fee_type_cd,t.fee_type_cd feeTypeCd,t.secondary_fee_type_cd,t.secondary_fee_type_cd secondaryFeeTypeCd,s.secondary_fee_type_cd_name,s.secondary_fee_type_cd_name secondaryFeeTypeCdName,t.computing_formula,t.computing_formula
        computingFormula,t.additional_amount,t.additional_amount additionalAmount,t.status_cd,t.status_cd
        statusCd,t.square_price,t.square_price squarePrice,t.is_default,t.is_default isDefault,t.config_id,t.config_id
        configId,t.fee_flag,t.fee_flag feeFlag,t.fee_name,t.fee_name feeName,t.start_time,t.start_time
@@ -116,6 +116,7 @@
        t.computing_formula_text,t.computing_formula_text computingFormulaText,
        t.pay_online payOnline,t.scale,t.decimal_place decimalPlace,t.units
        from pay_fee_config t,t_dict td1,t_dict td2,t_dict td3
        left join secondary_fee_type_cd_tb s on s.secondary_fee_type_cd = t.secondary_fee_type_cd
        where 1 =1
        and t.fee_type_cd = td1.status_cd
        and td1.table_name = 'pay_fee_config'
java110-interface/src/main/java/com/java110/intf/fee/IPayFeeConfigV1InnerServiceSMO.java
@@ -71,4 +71,5 @@
    @RequestMapping(value = "/queryFeeObjs", method = RequestMethod.POST)
    List<FeeDto> queryFeeObjs(@RequestBody FeeConfigDto feeConfigDto);
}
java110-utils/src/main/java/com/java110/utils/util/DateUtil.java
@@ -619,12 +619,6 @@
        return calendar.get(Calendar.MONTH) + 1;
    }
    public static int getDay(Date date) {
        Calendar a = Calendar.getInstance();
        a.setTime(date);
        return a.get(Calendar.DAY_OF_MONTH);
    }
    /**
     * 判断时间是否在时间段内
     *
service-api/pom-boot.xml
@@ -12,6 +12,7 @@
    <artifactId>service-api</artifactId>
    <name>service-api</name>
    <!-- FIXME change it to the project's website -->
    <url>http://www.example.com</url>
    <properties>
service-api/pom-cloud.xml
@@ -12,6 +12,7 @@
    <artifactId>service-api</artifactId>
    <name>service-api</name>
    <!-- FIXME change it to the project's website -->
    <url>http://www.example.com</url>
    <properties>
service-api/src/main/java/com/java110/api/configuration/ServiceConfiguration.java
@@ -27,6 +27,7 @@
    public FilterRegistrationBean jwtFilter() {
        StringBuffer exclusions = new StringBuffer();
        exclusions.append("/callComponent/login/*,");
        exclusions.append("/secondaryFeeTypeCdGl/*,");
        exclusions.append("/app/ext/992020051967020024/query_token,");
        exclusions.append("/callComponent/register/*,");
        exclusions.append("/callComponent/validate-code/*,");
service-api/src/main/java/com/java110/api/importData/adapt/ImportMeterWaterFeeDataCleaningAdapt.java
@@ -3,19 +3,17 @@
import com.alibaba.fastjson.JSONObject;
import com.java110.api.importData.DefaultImportDataAdapt;
import com.java110.api.importData.IImportDataCleaningAdapt;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.dto.importData.ImportRoomFee;
import com.java110.dto.meter.ImportExportMeterWaterDto;
import com.java110.dto.payFee.PayFeeBatchDto;
import com.java110.dto.system.ComponentValidateResult;
import com.java110.dto.user.UserDto;
import com.java110.po.payFee.PayFeeBatchPo;
import com.java110.intf.fee.IPayFeeBatchV1InnerServiceSMO;
import com.java110.intf.user.IUserInnerServiceSMO;
import com.java110.utils.util.Assert;
import com.java110.utils.util.DateUtil;
import com.java110.utils.util.ImportExcelUtils;
import com.java110.utils.util.StringUtil;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
@@ -27,16 +25,17 @@
 */
@Service("importMeterWaterFeeDataCleaning")
public class ImportMeterWaterFeeDataCleaningAdapt extends DefaultImportDataAdapt implements IImportDataCleaningAdapt {
    @Autowired
    private IPayFeeBatchV1InnerServiceSMO payFeeBatchV1InnerServiceSMOImpl;
    @Autowired
    private IUserInnerServiceSMO userInnerServiceSMOImpl;
    @Override
    public List analysisExcel(Workbook workbook, JSONObject paramIn, ComponentValidateResult result) throws Exception {
        List<ImportExportMeterWaterDto> rooms = new ArrayList<ImportExportMeterWaterDto>();
        //获取楼信息
        if (paramIn.containsKey("importMeterDynamic")) {
            getRooms2(workbook, rooms);
        } else {
            getRooms(workbook, rooms);
        }
        getRooms(workbook, rooms);
        generatorBatch(paramIn);
        for (ImportExportMeterWaterDto importRoomFee : rooms) {
            importRoomFee.setBatchId(paramIn.getString("batchId"));
@@ -102,49 +101,5 @@
    }
    private void getRooms2(Workbook workbook, List<ImportExportMeterWaterDto> rooms) {
        Sheet sheet = null;
        sheet = ImportExcelUtils.getSheet(workbook, "房屋费用信息");
        List<Object[]> oList = ImportExcelUtils.listFromSheet(sheet);
        ImportExportMeterWaterDto importRoomFee = null;
        for (int osIndex = 0; osIndex < oList.size(); osIndex++) {
            Object[] os = oList.get(osIndex);
            if (osIndex == 0 || osIndex == 1) { // 第一行是 头部信息 直接跳过
                continue;
            }
            if (StringUtil.isNullOrNone(os[0])) {
                continue;
            }
            Assert.hasValue(os[1], (osIndex + 1) + "单元编号不能为空");
            Assert.hasValue(os[2], (osIndex + 1) + "房屋编号不能为空");
            Assert.hasValue(os[4], (osIndex + 1) + "单价不能为空");
            Assert.hasValue(os[5], (osIndex + 1) + "上期度数不能为空");
            Assert.hasValue(os[6], (osIndex + 1) + "上期度数时间不能为空");
            Assert.hasValue(os[7], (osIndex + 1) + "本期度数不能为空");
            Assert.hasValue(os[8], (osIndex + 1) + "本期度数时间不能为空");
//
            String startTime = excelDoubleToDate(os[6].toString());
            String endTime = excelDoubleToDate(os[8].toString());
            Assert.isDate(startTime, DateUtil.DATE_FORMATE_STRING_B, (osIndex + 1) + "行开始时间格式错误 请填写YYYY-MM-DD 文本格式");
            Assert.isDate(endTime, DateUtil.DATE_FORMATE_STRING_B, (osIndex + 1) + "行结束时间格式错误 请填写YYYY-MM-DD 文本格式");
            importRoomFee = new ImportExportMeterWaterDto();
            importRoomFee.setFloorNum(os[0].toString());
            importRoomFee.setUnitNum(os[1].toString());
            importRoomFee.setRoomNum(os[2].toString());
            importRoomFee.setPrice(Double.parseDouble(os[4].toString()));
            importRoomFee.setPreDegrees(os[5].toString());
            importRoomFee.setPreReadingTime(startTime);
            importRoomFee.setCurDegrees(os[7].toString());
            importRoomFee.setCurReadingTime(endTime);
            rooms.add(importRoomFee);
            if (Double.parseDouble(importRoomFee.getCurDegrees()) < Double.parseDouble(importRoomFee.getPreDegrees())) {
                throw new IllegalArgumentException((osIndex + 1) + "行本期读数小于上期读数");
            }
        }
    }
}
service-community/src/main/java/com/java110/community/cmd/ownerRepair/RepairDispatchCmd.java
@@ -168,7 +168,7 @@
        repairUserDto.setStates(new String[]{RepairUserDto.STATE_DOING,RepairUserDto.STATE_EVALUATE});
        repairUserDto.setStaffId(reqJson.getString("userId"));
        List<RepairUserDto> repairUserDtos = repairUserInnerServiceSMOImpl.queryRepairUsers(repairUserDto);
        if (ListUtil.isNull(repairUserDtos)) {
        if (!ListUtil.isNull(repairUserDtos)) {
            ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_BUSINESS_VERIFICATION, "当前用户没有需要处理订单!");
            context.setResponseEntity(responseEntity);
            return;
service-community/src/main/java/com/java110/community/cmd/parkingSpaceApply/ListParkingSpaceApplyCmd.java
@@ -54,7 +54,7 @@
    @Override
    public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
        super.validatePageInfo(reqJson);
        //super.validateProperty(cmdDataFlowContext);
        super.validateProperty(cmdDataFlowContext);
    }
    @Override
service-community/src/main/java/com/java110/community/cmd/repair/SaveRepairSettingCmd.java
@@ -61,7 +61,7 @@
        Assert.hasKeyAndValue(reqJson, "payFeeFlag", "请求报文中未包含收费情况");
        Assert.hasKeyAndValue(reqJson, "returnVisitFlag", "请求报文中未包含回访设置");
        Assert.hasKeyAndValue(reqJson, "doTime", "请求报文中未包含办理时长");
        Assert.hasKeyAndValue(reqJson, "warningTime", "请求报文中未包含超时预警");
        Assert.hasKeyAndValue(reqJson, "warning", "请求报文中未包含超时预警");
    }
service-fee/src/main/java/com/java110/fee/cmd/fee/PayFeeCmd.java
@@ -707,17 +707,17 @@
            return;
        }
        // todo 自己是间接性费用
        if (FeeDto.FEE_FLAG_CYCLE.equals(feeConfigDto.getFeeFlag())) {
        if (FeeDto.FEE_FLAG_CYCLE_ONCE.equals(feeConfigDto.getFeeFlag())) {
            return;
        }
        FeeConfigDto tmpFeeConfigDto = new FeeConfigDto();
        tmpFeeConfigDto.setFeeNameEq(feeConfigDto.getFeeName() + "欠费");
        tmpFeeConfigDto.setFeeFlag(FeeDto.FEE_FLAG_CYCLE);
        tmpFeeConfigDto.setFeeFlag(FeeDto.FEE_FLAG_CYCLE_ONCE);
        tmpFeeConfigDto.setComputingFormula(feeConfigDto.getComputingFormula());
        List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(tmpFeeConfigDto);
        Assert.listOnlyOne(feeConfigDtos, "按自定义时间段缴费时,费用必须为周期性,或者存在名称为 " + feeConfigDto.getFeeName() + "欠费 的周期性费用,它的公式计算必须要和" + feeConfigDto.getFeeName() + "一致");
        Assert.listOnlyOne(feeConfigDtos, "按自定义时间段缴费时,费用必须为间接性费用,或者存在名称为 " + feeConfigDto.getFeeName() + "欠费 的间接性费用,它的公式计算必须要和" + feeConfigDto.getFeeName() + "一致");
    }
@@ -819,7 +819,7 @@
            tmpFeeAttrPo = new FeeAttrPo();
            tmpFeeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId, true));
            tmpFeeAttrPo.setFeeId(tmpPayFeePo.getFeeId());
            tmpFeeAttrPo.setCommunityId(tmpPayFeePo.getCommunityId());
            tmpFeeAttrPo.setCommunityId(tmpFeeAttrPo.getCommunityId());
            tmpFeeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_ONCE_FEE_DEADLINE_TIME);
            tmpFeeAttrPo.setValue(reqJson.getString("customStartTime"));
            tmpFeeAttrPos.add(tmpFeeAttrPo);
@@ -841,14 +841,14 @@
        feeConfigDto.setCommunityId(feeInfo.getCommunityId());
        List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
        Assert.listOnlyOne(feeConfigDtos, "费用项不存在");
        if (FeeDto.FEE_FLAG_CYCLE.equals(feeConfigDtos.get(0).getFeeFlag())) {
        if (FeeDto.FEE_FLAG_CYCLE_ONCE.equals(feeConfigDtos.get(0).getFeeFlag())) {
            return;
        }
        FeeConfigDto tmpFeeConfigDto = new FeeConfigDto();
        tmpFeeConfigDto.setFeeNameEq(feeConfigDtos.get(0).getFeeName() + "欠费");
        tmpFeeConfigDto.setFeeFlag(FeeDto.FEE_FLAG_CYCLE);
        tmpFeeConfigDto.setFeeFlag(FeeDto.FEE_FLAG_CYCLE_ONCE);
        tmpFeeConfigDto.setComputingFormula(feeConfigDto.getComputingFormula());
        //todo 校验的时候校验过了 所以这里不可能为空
        feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(tmpFeeConfigDto);
service-fee/src/main/java/com/java110/fee/cmd/feeConfig/SaveFeeConfigCmd.java
@@ -14,6 +14,7 @@
import com.java110.utils.util.Assert;
import com.java110.utils.util.BeanConvertUtil;
import com.java110.vo.ResultVo;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
@Java110Cmd(serviceCode = "feeConfig.saveFeeConfig")
@@ -53,13 +54,15 @@
    }
    @Autowired
    protected SqlSessionTemplate sqlSessionTemplate;
    @Override
    @Java110Transactional
    public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
        reqJson.put("configId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_configId));
        reqJson.put("isDefault", "F");
        PayFeeConfigPo payFeeConfigPo = BeanConvertUtil.covertBean(reqJson, PayFeeConfigPo.class);
        int flag = payFeeConfigV1InnerServiceSMOImpl.savePayFeeConfig(payFeeConfigPo);
        if (flag < 1) {
service-fee/src/main/java/com/java110/fee/cmd/feeConfig/SecondaryFeeTypeCdTbApi.java
New file
@@ -0,0 +1,37 @@
package com.java110.fee.cmd.feeConfig;
import com.alibaba.fastjson.JSONObject;
import com.java110.core.annotation.Java110Cmd;
import com.java110.core.annotation.Java110Transactional;
import com.java110.core.context.ICmdDataFlowContext;
import com.java110.core.event.cmd.Cmd;
import com.java110.core.event.cmd.CmdEvent;
import com.java110.db.dao.impl.SecondaryFeeTypeCdGlImpl;
import com.java110.utils.exception.CmdException;
import com.java110.vo.api.feeConfig.SecondaryFeeTypeCdGlVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import java.util.List;
@Java110Cmd(serviceCode = "/secondaryFeeTypeCdGl/list")
public class SecondaryFeeTypeCdTbApi extends Cmd {
    @Autowired
    private SecondaryFeeTypeCdGlImpl secondaryFeeTypeCdGlImpl;
    @Override
    public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
    }
    @Override
    @Java110Transactional
    public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
        String feeTypeCd = reqJson.getString("feeTypeCd");
        List<SecondaryFeeTypeCdGlVo> secondaryFeeTypeCdGlVos = secondaryFeeTypeCdGlImpl.listByFeeTypeCd(feeTypeCd);
        ResponseEntity<String> responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(secondaryFeeTypeCdGlVos), HttpStatus.OK);
        cmdDataFlowContext.setResponseEntity(responseEntity);
    }
}
service-fee/src/main/java/com/java110/fee/cmd/meterWater/SaveMeterWaterCmd.java
@@ -193,14 +193,17 @@
            reqJson.put("feeId", payFeePo.getFeeId());
            addMeterWater(reqJson, roomList.get(0));
            int flag = payFeeV1InnerServiceSMOImpl.savePayFee(payFeePo);
            if (flag < 1) {
                throw new CmdException("保存数据失败");
            }
            FeeAttrPo feeAttrPo = new FeeAttrPo();
            feeAttrPo.setCommunityId(reqJson.getString("communityId"));
            feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_ONCE_FEE_DEADLINE_TIME);
            feeAttrPo.setValue(reqJson.getString("curReadingTime"));
            feeAttrPo.setFeeId(payFeePo.getFeeId());
            feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
            int flag = feeAttrInnerServiceSMOImpl.saveFeeAttr(feeAttrPo);
            flag = feeAttrInnerServiceSMOImpl.saveFeeAttr(feeAttrPo);
            if (flag < 1) {
                throw new CmdException("保存数据失败");
            }
@@ -212,7 +215,7 @@
            feeAttrPo.setValue(roomList.get(0).getFloorNum() + "-" + roomList.get(0).getUnitNum() + "-" + roomList.get(0).getRoomNum());
            feeAttrPo.setFeeId(payFeePo.getFeeId());
            feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
             flag = feeAttrInnerServiceSMOImpl.saveFeeAttr(feeAttrPo);
            flag = feeAttrInnerServiceSMOImpl.saveFeeAttr(feeAttrPo);
            if (flag < 1) {
                throw new CmdException("保存数据失败");
            }
@@ -222,7 +225,7 @@
            ownerDto.setRoomId(reqJson.getString("objId"));
            List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnersByRoom(ownerDto);
            if (!ListUtil.isNull(ownerDtos)) {
            if (ownerDtos != null && ownerDtos.size() > 0) {
                feeAttrPo = new FeeAttrPo();
                feeAttrPo.setCommunityId(reqJson.getString("communityId"));
                feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_ID);
@@ -256,10 +259,7 @@
                    throw new CmdException("保存数据失败");
                }
            }
             flag = payFeeV1InnerServiceSMOImpl.savePayFee(payFeePo);
            if (flag < 1) {
                throw new CmdException("保存数据失败");
            }
        }
        cmdDataFlowContext.setResponseEntity(ResultVo.success());
    }
service-fee/src/main/java/com/java110/fee/dao/IPayFeeConfigV1ServiceDao.java
@@ -73,4 +73,5 @@
    int queryFeeObjsCount(Map info);
    List<Map> queryFeeObjs(Map info);
}
service-fee/src/main/java/com/java110/fee/dao/impl/PayFeeConfigV1ServiceDaoImpl.java
@@ -26,6 +26,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
service-fee/src/main/java/com/java110/fee/feeMonth/IPayFeeMonthHelp.java
@@ -30,5 +30,5 @@
     * @param feePrice
     * @param deadlineTime
     */
    void waitDispersedOweFee(FeeDto feeDto, PayFeeMonthOwnerDto payFeeMonthOwnerDto, Double feePrice, Date deadlineTime,double oweMonth);
    void waitDispersedOweFee(FeeDto feeDto, PayFeeMonthOwnerDto payFeeMonthOwnerDto, Double feePrice, Date deadlineTime);
}
service-fee/src/main/java/com/java110/fee/feeMonth/PayFeeMonthHelp.java
@@ -97,7 +97,17 @@
        Map feePriceAll = computeFeeSMOImpl.getFeePrice(feeDto);
        Double feePrice = Double.parseDouble(feePriceAll.get("feePrice").toString());
        //todo 如果是一次性费用 除以
//        if (!FeeDto.FEE_FLAG_ONCE.equals(feeDto.getPayerObjType())) {
//            return feePrice;
//        }
//        double maxMonth = Math.ceil(computeFeeSMOImpl.dayCompare(feeDto.getStartTime(), feeDto.getEndTime()));
//        if (maxMonth <= 0) {
//            return feePrice;
//
//        }
//        BigDecimal feePriceDec = new BigDecimal(feePrice).divide(new BigDecimal(maxMonth), 2, BigDecimal.ROUND_HALF_UP);
//        feePrice = feePriceDec.doubleValue();
        return feePrice;
    }
@@ -135,15 +145,7 @@
        for (FeeDetailDto feeDetailDto : feeDetailDtos) {
            // todo 逐条去离散
            try {
                // 自然月实收处理
                doDispersedFeeDetailNormalMonth(feeDetailDto, feeDto, payFeeMonthOwnerDto, feePrice);
                //非自然月或者一次性费用处理已经交过费的
                doDispersedFeeDetailUnNormalMonth(feeDetailDto, feeDto, payFeeMonthOwnerDto, feePrice);
            }catch (Exception e){
                e.printStackTrace();
            }
            doDispersedFeeDetail(feeDetailDto, feeDto, payFeeMonthOwnerDto, feePrice);
        }
    }
@@ -157,7 +159,7 @@
     * @param deadlineTime
     */
    @Override
    public void waitDispersedOweFee(FeeDto feeDto, PayFeeMonthOwnerDto payFeeMonthOwnerDto, Double feePrice, Date deadlineTime, double oweMonth) {
    public void waitDispersedOweFee(FeeDto feeDto, PayFeeMonthOwnerDto payFeeMonthOwnerDto, Double feePrice, Date deadlineTime) {
        // todo 清理 detailId 为-1 的数据
@@ -172,31 +174,6 @@
            return;
        }
        // 自然月周期性费用计算
        waitDispersedOweFeeCycleNormalMonth(feeDto, payFeeMonthOwnerDto, feePrice, deadlineTime);
        // 一次性或者非自然月处理
        waitDispersedOweFeeOnceUnNormalMonth(feeDto, payFeeMonthOwnerDto, feePrice, deadlineTime, oweMonth);
    }
    /**
     * 自然月周期性费用计算
     *
     * @param feeDto
     * @param payFeeMonthOwnerDto
     * @param feePrice
     * @param deadlineTime
     */
    private void waitDispersedOweFeeCycleNormalMonth(FeeDto feeDto, PayFeeMonthOwnerDto payFeeMonthOwnerDto, Double feePrice, Date deadlineTime) {
        // 一次性费用直接返回
        if (FeeDto.FEE_FLAG_ONCE.equals(feeDto.getFeeFlag())) {
            return;
        }
        // 不是自然月 费用直接返回
        if (DateUtil.getDay(feeDto.getStartTime()) != 1) {
            return;
        }
        List<PayFeeDetailMonthPo> payFeeDetailMonthPos = new ArrayList<>();
        // todo 处理 开始时间和结束时间
        Date startTime = DateUtil.timeToDate(feeDto.getEndTime());
@@ -205,6 +182,15 @@
        BigDecimal receivableAmount = new BigDecimal(feePrice);
        BigDecimal dayReceivableAmount = null;
        //todo 一次性费用 日应收计算
        if (FeeDto.FEE_FLAG_ONCE.equals(feeDto.getFeeFlag())) {
            int day = DateUtil.daysBetween(endTime, startTime);
            if (day < 1) {
                day = 1;
            }
            dayReceivableAmount = receivableAmount.divide(new BigDecimal(day), 8, BigDecimal.ROUND_HALF_UP);// 日 应收
        }
        // todo 寻找第一个自然月 一日
        Calendar firstMonthDayCal = Calendar.getInstance();
@@ -226,7 +212,11 @@
            calendar.setTime(startMonthDayTime);
            curMonthMaxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
            dayReceivableAmount = receivableAmount.divide(new BigDecimal(curMonthMaxDay), 8, BigDecimal.ROUND_HALF_UP);// 日 实收
            //todo 周期性费用 日应收重新算
            if (!FeeDto.FEE_FLAG_ONCE.equals(feeDto.getFeeFlag())) {
                dayReceivableAmount = receivableAmount.divide(new BigDecimal(curMonthMaxDay), 8, BigDecimal.ROUND_HALF_UP);// 日 实收
            }
            // todo 计算 应收
            curMonthReceivableAmount = new BigDecimal(curDay).multiply(dayReceivableAmount).setScale(4, BigDecimal.ROUND_HALF_UP);
@@ -250,111 +240,25 @@
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(startMonthDayTime);
        curMonthMaxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
        // todo 如果不是整月,则转换为按天计算
//        if (curDay != curMonthMaxDay) {
        //todo 周期性费用 日应收重新算
        if (!FeeDto.FEE_FLAG_ONCE.equals(feeDto.getFeeFlag())) {
            dayReceivableAmount = receivableAmount.divide(new BigDecimal(curMonthMaxDay), 8, BigDecimal.ROUND_HALF_UP);// 日 实收
        }
        // todo 计算 应收
        curMonthReceivableAmount = new BigDecimal(curDay).multiply(dayReceivableAmount).setScale(4, BigDecimal.ROUND_HALF_UP);
//        } else { // todo 如果是整月 那就按月计算,以免 转换成天再 乘以天数后的误差
//            curMonthReceivableAmount = receivableAmount;
//        }
        // todo 保存数据到pay_fee_detail_month
        toSavePayFeeDetailMonth(curMonthReceivableAmount.doubleValue(), 0, null, feeDto, payFeeMonthOwnerDto, payFeeDetailMonthPos, startMonthDayTime, deadlineTime);
        payFeeDetailMonthInnerServiceSMOImpl.savePayFeeDetailMonths(payFeeDetailMonthPos);
    }
    /**
     * 一次性或者非自然月处理
     *
     * @param feeDto
     * @param payFeeMonthOwnerDto
     * @param deadlineTime
     * @param oweMonth
     */
    private void waitDispersedOweFeeOnceUnNormalMonth(FeeDto feeDto, PayFeeMonthOwnerDto payFeeMonthOwnerDto, double feePrice, Date deadlineTime, double oweMonth) {
        // 不是一次性费用 并且是 自然月就返回
        if (!FeeDto.FEE_FLAG_ONCE.equals(feeDto.getFeeFlag()) && DateUtil.getDay(feeDto.getStartTime()) == 1) {
            return;
        }
        List<PayFeeDetailMonthPo> payFeeDetailMonthPos = new ArrayList<>();
        // todo 处理 开始时间和结束时间
        Date startTime = DateUtil.timeToDate(feeDto.getEndTime());
        Date endTime = DateUtil.deadTimeToDate(deadlineTime);
        BigDecimal receivableAmount = new BigDecimal(feePrice).multiply(new BigDecimal(oweMonth)).setScale(8, BigDecimal.ROUND_HALF_UP);
        BigDecimal dayReceivableAmount = null;
        int day = DateUtil.daysBetween(endTime, startTime);
        if (day < 1) {
            day = 1;
        }
        dayReceivableAmount = receivableAmount.divide(new BigDecimal(day), 8, BigDecimal.ROUND_HALF_UP);// 日 应收
        // todo 寻找第一个自然月 一日
        Calendar firstMonthDayCal = Calendar.getInstance();
        firstMonthDayCal.setTime(startTime);
        firstMonthDayCal.add(Calendar.MONTH, 1);
        firstMonthDayCal.set(Calendar.DAY_OF_MONTH, 1);
        Date firstMonthDayTime = firstMonthDayCal.getTime();
        Date startMonthDayTime = startTime;
        // todo  循环,只到 firstMonthDayTime 大于 endTime
        int curDay = 0;
        int curMonthMaxDay = 30;
        BigDecimal curMonthReceivableAmount = null;
        while (firstMonthDayTime.getTime() < endTime.getTime()) {
            curDay = DateUtil.daysBetween(firstMonthDayTime, startMonthDayTime);
            // todo 计算 应收
            curMonthReceivableAmount = new BigDecimal(curDay).multiply(dayReceivableAmount).setScale(4, BigDecimal.ROUND_HALF_UP);
            // todo 保存数据到pay_fee_detail_month
            toSavePayFeeDetailMonth(curMonthReceivableAmount.doubleValue(), 0, null, feeDto, payFeeMonthOwnerDto, payFeeDetailMonthPos, startMonthDayTime, deadlineTime);
            // todo 将startTime 修改为 下月1日时间
            startMonthDayTime = firstMonthDayTime;
            firstMonthDayCal.add(Calendar.MONTH, 1);
            firstMonthDayTime = firstMonthDayCal.getTime();
        }
        //todo 最后处理 最后 startMonthDayTime 到endTime 的
        if (startMonthDayTime.getTime() >= endTime.getTime()) {
            payFeeDetailMonthInnerServiceSMOImpl.savePayFeeDetailMonths(payFeeDetailMonthPos);
            return;
        }
        curDay = DateUtil.daysBetween(endTime, startMonthDayTime);
        // todo 计算 应收
        curMonthReceivableAmount = new BigDecimal(curDay).multiply(dayReceivableAmount).setScale(4, BigDecimal.ROUND_HALF_UP);
        // todo 保存数据到pay_fee_detail_month
        toSavePayFeeDetailMonth(curMonthReceivableAmount.doubleValue(), 0, null, feeDto, payFeeMonthOwnerDto, payFeeDetailMonthPos, startMonthDayTime, deadlineTime);
        payFeeDetailMonthInnerServiceSMOImpl.savePayFeeDetailMonths(payFeeDetailMonthPos);
    }
    /**
     * 自然月处理已经交过费的
     *
     * @param feeDetailDto
     * @param feeDto
     * @param payFeeMonthOwnerDto
     * @param feePrice
     */
    private void doDispersedFeeDetailNormalMonth(FeeDetailDto feeDetailDto, FeeDto feeDto, PayFeeMonthOwnerDto
    private void doDispersedFeeDetail(FeeDetailDto feeDetailDto, FeeDto feeDto, PayFeeMonthOwnerDto
            payFeeMonthOwnerDto, Double feePrice) {
        // 一次性费用直接返回
        if (FeeDto.FEE_FLAG_ONCE.equals(feeDto.getFeeFlag())) {
            return;
        }
        // 不是自然月 费用直接返回
        if (DateUtil.getDay(feeDto.getStartTime()) != 1) {
            return;
        }
        List<PayFeeDetailMonthPo> payFeeDetailMonthPos = new ArrayList<>();
        // todo 去除 开始时间和 结束时间的 小时 分钟 秒
@@ -369,119 +273,8 @@
        }
        double month = DateUtil.dayCompare(feeDetailDto.getStartTime(), feeDetailDto.getEndTime(), true);
        BigDecimal receivableAmount = new BigDecimal(feeDetailDto.getReceivableAmount());
        BigDecimal receivedAmount = new BigDecimal(feeDetailDto.getReceivedAmount());
        BigDecimal monthReceivableAmount = receivableAmount.divide(new BigDecimal(month + ""), 8, BigDecimal.ROUND_HALF_UP);
        BigDecimal monthReceivedAmount = receivedAmount.divide(new BigDecimal(month + ""), 8, BigDecimal.ROUND_HALF_UP);
        BigDecimal dayReceivableAmount = null;
        BigDecimal dayReceivedAmount = null;
        // todo 寻找第一个自然月 一日
        Calendar firstMonthDayCal = Calendar.getInstance();
        firstMonthDayCal.setTime(startTime);
        firstMonthDayCal.add(Calendar.MONTH, 1);
        firstMonthDayCal.set(Calendar.DAY_OF_MONTH, 1);
        Date firstMonthDayTime = firstMonthDayCal.getTime();
        Date startMonthDayTime = startTime;
        // todo  循环,只到 firstMonthDayTime 大于 endTime
        int curDay = 0;
        BigDecimal curMonthReceivableAmount = null;
        BigDecimal curMonthReceivedAmount = null;
        int curMonthMaxDay = 30;
        while (firstMonthDayTime.getTime() < endTime.getTime()) {
            curDay = DateUtil.daysBetween(firstMonthDayTime, startMonthDayTime);
            // todo 计算当月天数
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(startMonthDayTime);
            curMonthMaxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
            dayReceivableAmount = monthReceivableAmount.divide(new BigDecimal(curMonthMaxDay), 8, BigDecimal.ROUND_HALF_UP);// 日 实收
            dayReceivedAmount = monthReceivedAmount.divide(new BigDecimal(curMonthMaxDay), 8, BigDecimal.ROUND_HALF_UP);// 日 实收
            // todo 计算 应收
            curMonthReceivableAmount = new BigDecimal(curDay).multiply(dayReceivableAmount).setScale(4, BigDecimal.ROUND_HALF_UP);
            // todo 计算 实收
            curMonthReceivedAmount = new BigDecimal(curDay).multiply(dayReceivedAmount).setScale(4, BigDecimal.ROUND_HALF_UP);
            if(curMonthReceivableAmount.doubleValue() > receivableAmount.doubleValue()){
                curMonthReceivableAmount = receivableAmount;
            }
            if(curMonthReceivedAmount.doubleValue() > receivedAmount.doubleValue()){
                curMonthReceivedAmount = receivedAmount;
            }
            // todo 保存数据到pay_fee_detail_month
            toSavePayFeeDetailMonth(curMonthReceivableAmount.doubleValue(), curMonthReceivedAmount.doubleValue(), feeDetailDto, feeDto, payFeeMonthOwnerDto, payFeeDetailMonthPos, startMonthDayTime, endTime);
            // todo 将startTime 修改为 下月1日时间
            startMonthDayTime = firstMonthDayTime;
            firstMonthDayCal.add(Calendar.MONTH, 1);
            firstMonthDayTime = firstMonthDayCal.getTime();
            receivableAmount = receivableAmount.subtract(curMonthReceivableAmount);
            receivedAmount = receivedAmount.subtract(curMonthReceivedAmount);
        }
        //todo 最后处理 最后 startMonthDayTime 到endTime 的
        if (startMonthDayTime.getTime() >= endTime.getTime()) {
            payFeeDetailMonthInnerServiceSMOImpl.savePayFeeDetailMonths(payFeeDetailMonthPos);
            return;
        }
        curDay = DateUtil.daysBetween(endTime, startMonthDayTime);
        // todo 计算当月天数
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(startMonthDayTime);
        curMonthMaxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
        dayReceivableAmount = monthReceivableAmount.divide(new BigDecimal(curMonthMaxDay), 8, BigDecimal.ROUND_HALF_UP);// 日 实收
        dayReceivedAmount = monthReceivedAmount.divide(new BigDecimal(curMonthMaxDay), 8, BigDecimal.ROUND_HALF_UP);// 日 实收
        // todo 计算 应收
        curMonthReceivableAmount = new BigDecimal(curDay).multiply(dayReceivableAmount).setScale(4, BigDecimal.ROUND_HALF_UP);
        // todo 计算 实收
        curMonthReceivedAmount = new BigDecimal(curDay).multiply(dayReceivedAmount).setScale(4, BigDecimal.ROUND_HALF_UP);
        if(curMonthReceivableAmount.doubleValue() > receivableAmount.doubleValue()){
            curMonthReceivableAmount = receivableAmount;
        }
        if(curMonthReceivedAmount.doubleValue() > receivedAmount.doubleValue()){
            curMonthReceivedAmount = receivedAmount;
        }
        // todo 保存数据到pay_fee_detail_month
        toSavePayFeeDetailMonth(curMonthReceivableAmount.doubleValue(), curMonthReceivedAmount.doubleValue(), feeDetailDto, feeDto, payFeeMonthOwnerDto, payFeeDetailMonthPos, startMonthDayTime, endTime);
        payFeeDetailMonthInnerServiceSMOImpl.savePayFeeDetailMonths(payFeeDetailMonthPos);
    }
    /**
     * 非自然月或者一次性费用处理已经交过费的
     *
     * @param feeDetailDto
     * @param feeDto
     * @param payFeeMonthOwnerDto
     * @param feePrice
     */
    private void doDispersedFeeDetailUnNormalMonth(FeeDetailDto feeDetailDto, FeeDto feeDto, PayFeeMonthOwnerDto
            payFeeMonthOwnerDto, Double feePrice) {
        // 不是一次性费用 并且是 自然月就返回
        if (!FeeDto.FEE_FLAG_ONCE.equals(feeDto.getFeeFlag()) && DateUtil.getDay(feeDto.getStartTime()) == 1) {
            return;
        }
        List<PayFeeDetailMonthPo> payFeeDetailMonthPos = new ArrayList<>();
        // todo 去除 开始时间和 结束时间的 小时 分钟 秒
        Date startTime = DateUtil.timeToDate(feeDetailDto.getStartTime());
        Date endTime = feeDetailDto.getEndTime();
        endTime = DateUtil.getNextSecDateTime(endTime);
        endTime = DateUtil.timeToDate(endTime);
        int day = DateUtil.daysBetween(endTime, startTime);
        if (day < 1) {
            day = 1;
        }
        BigDecimal receivableAmount = new BigDecimal(feeDetailDto.getReceivableAmount());
        BigDecimal receivedAmount = new BigDecimal(feeDetailDto.getReceivedAmount());
        BigDecimal receivableAmount = new BigDecimal(feePrice + "");
        BigDecimal receivedAmount = new BigDecimal(Double.parseDouble(feeDetailDto.getReceivedAmount()));
        BigDecimal dayReceivableAmount = receivableAmount.divide(new BigDecimal(day), 8, BigDecimal.ROUND_HALF_UP);// 日 应收
        BigDecimal dayReceivedAmount = receivedAmount.divide(new BigDecimal(day), 8, BigDecimal.ROUND_HALF_UP);// 日 实收
@@ -501,6 +294,15 @@
        int curMonthMaxDay = 30;
        while (firstMonthDayTime.getTime() < endTime.getTime()) {
            curDay = DateUtil.daysBetween(firstMonthDayTime, startMonthDayTime);
            // todo 计算当月天数
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(startMonthDayTime);
            curMonthMaxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
            if (!FeeDto.FEE_FLAG_ONCE.equals(feeDto.getFeeFlag())) {
                dayReceivableAmount = receivableAmount.divide(new BigDecimal(curMonthMaxDay), 8, BigDecimal.ROUND_HALF_UP);// 日 实收
                dayReceivedAmount = receivedAmount.divide(new BigDecimal(month + ""), 8, BigDecimal.ROUND_HALF_UP);// 日 实收
                dayReceivedAmount = dayReceivedAmount.divide(new BigDecimal(curMonthMaxDay), 8, BigDecimal.ROUND_HALF_UP);// 日 实收
            }
            // todo 计算 应收
            curMonthReceivableAmount = new BigDecimal(curDay).multiply(dayReceivableAmount).setScale(4, BigDecimal.ROUND_HALF_UP);
            // todo 计算 实收
@@ -521,6 +323,15 @@
        }
        curDay = DateUtil.daysBetween(endTime, startMonthDayTime);
        // todo 计算当月天数
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(startMonthDayTime);
        curMonthMaxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
        if (!FeeDto.FEE_FLAG_ONCE.equals(feeDto.getFeeFlag())) {
            dayReceivableAmount = receivableAmount.divide(new BigDecimal(curMonthMaxDay), 8, BigDecimal.ROUND_HALF_UP);// 日 实收
            dayReceivedAmount = receivedAmount.divide(new BigDecimal(month + ""), 8, BigDecimal.ROUND_HALF_UP);// 日 实收
            dayReceivedAmount = dayReceivedAmount.divide(new BigDecimal(curMonthMaxDay), 8, BigDecimal.ROUND_HALF_UP);// 日 实收
        }
        // todo 计算 应收
        curMonthReceivableAmount = new BigDecimal(curDay).multiply(dayReceivableAmount).setScale(4, BigDecimal.ROUND_HALF_UP);
        // todo 计算 实收
@@ -531,6 +342,7 @@
        payFeeDetailMonthInnerServiceSMOImpl.savePayFeeDetailMonths(payFeeDetailMonthPos);
    }
    /**
     * 保存数据
     *
@@ -567,9 +379,6 @@
                getDiscountAmount(Double.parseDouble(tmpPayFeeDetailMonthPo.getReceivableAmount()),
                        Double.parseDouble(tmpPayFeeDetailMonthPo.getReceivedAmount()),
                        calendar.getTime(), feeDto) + "");
        if (feeDetailDto == null) {
            tmpPayFeeDetailMonthPo.setDiscountAmount("0");
        }
        tmpPayFeeDetailMonthPo.setMonthId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_monthId, true));
        tmpPayFeeDetailMonthPo.setRemark("程序计算生成");
        tmpPayFeeDetailMonthPo.setObjName(payFeeMonthOwnerDto.getObjName());
service-fee/src/main/java/com/java110/fee/feeMonth/PayFeeMonthImpl.java
@@ -230,10 +230,8 @@
        //todo 处理 endTime 到 deadlineTime 的费用
        Map info = computeFeeSMOImpl.getTargetEndDateAndOweMonth(feeDto);
        Date deadlineTime = (Date) info.get("targetEndDate");
        double oweMonth = (double)info.get("oweMonth");
        payFeeMonthHelp.waitDispersedOweFee(feeDto, payFeeMonthOwnerDto, feePrice, deadlineTime,oweMonth);
        Date deadlineTime = computeFeeSMOImpl.getDeadlineTime(feeDto);
        payFeeMonthHelp.waitDispersedOweFee(feeDto, payFeeMonthOwnerDto, feePrice, deadlineTime);
    }
service-fee/src/main/java/com/java110/fee/smo/impl/PayFeeConfigV1InnerServiceSMOImpl.java
@@ -108,4 +108,5 @@
        return feeDtos;
    }
}
service-job/src/main/java/com/java110/job/cmd/userDownloadFile/ListUserDownloadFileCmd.java
@@ -59,8 +59,8 @@
    @Override
    public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
        super.validatePageInfo(reqJson);
        Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区编号");
//        super.validatePageInfo(reqJson);
//        Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区编号");
    }
    @Override
service-job/src/main/java/com/java110/job/export/adapt/ReportListOweFeeAdapt.java
File was deleted
service-job/src/main/java/com/java110/job/export/adapt/ReportOweFeeDetailAdapt.java
File was deleted
service-job/src/main/java/com/java110/job/export/adapt/ReportPayFeeDepositAdapt.java
File was deleted
service-job/src/main/java/com/java110/job/export/adapt/ReportQuestionAnswerDetailAdapt.java
File was deleted
service-job/src/main/java/com/java110/job/export/adapt/ReportRepairDetailAdapt.java
File was deleted
service-job/src/main/java/com/java110/job/importData/adapt/ImportRoomFeeQueueDataAdapt.java
@@ -213,7 +213,7 @@
        payFeePo.setAmount(importRoomFee.getAmount());
        payFeePo.setBatchId(batchId);
        payFeePo.setEndTime(importRoomFee.getStartTime());
        payFeePo.setStartTime(importRoomFee.getStartTime());
        payFeePo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
        payFeePos.add(payFeePo);
service-job/src/main/java/com/java110/job/task/noticeStaff/NoticeStaffTaskTemplate.java
@@ -224,7 +224,7 @@
        InspectionTaskDetailDto inspectionTaskDetailDto = new InspectionTaskDetailDto();
        inspectionTaskDetailDto.setCommunityId(communityDto.getCommunityId());
        inspectionTaskDetailDto.setState(InspectionTaskDto.STATE_NO_START);
        inspectionTaskDetailDto.setQrCodeTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
        inspectionTaskDetailDto.setQrCodeTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_B));
        inspectionTaskDetailDto.setSendFlag(InspectionTaskDetailDto.SEND_FLAG_N);
        List<InspectionTaskDetailDto> inspectionTaskDetailDtos = inspectionTaskDetailInnerServiceSMOImpl.queryInspectionTaskDetails(inspectionTaskDetailDto);
        for (InspectionTaskDetailDto tInspectionTaskDetailDto : inspectionTaskDetailDtos) {
service-user/src/main/java/com/java110/user/cmd/owner/QueryAppOwnerMembersCmd.java
@@ -21,7 +21,6 @@
import com.java110.utils.util.BeanConvertUtil;
import com.java110.utils.util.ListUtil;
import com.java110.utils.util.StringUtil;
import com.java110.vo.ResultVo;
import com.java110.vo.api.ApiOwnerDataVo;
import com.java110.vo.api.ApiOwnerVo;
import org.springframework.beans.factory.annotation.Autowired;
@@ -113,7 +112,13 @@
            ownerDtoList = new ArrayList<>();
        }
        ResponseEntity<String> responseEntity = ResultVo.createResponseEntity((int) Math.ceil((double) total / (double) row), total, ownerDtoList);
        ApiOwnerVo apiOwnerVo = new ApiOwnerVo();
        apiOwnerVo.setOwners(BeanConvertUtil.covertBeanList(ownerDtoList, ApiOwnerDataVo.class));
        apiOwnerVo.setTotal(total);
        apiOwnerVo.setRecords((int) Math.ceil((double) total / (double) row));
        ResponseEntity<String> responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiOwnerVo), HttpStatus.OK);
        context.setResponseEntity(responseEntity);
    }
}
springboot/src/main/resources/application-debug.yml
@@ -21,9 +21,8 @@
    name: boot-service
  redis:
    database: 0
    host: 139.196.252.132
    host: localhost
    port: 6379
    password: hc
    pool:
      max-active: 300
      max-wait: 3000
@@ -33,9 +32,9 @@
  activiti:
    database-schema-update: false
  datasource:
    url: jdbc:mysql://139.196.252.132:3306/TT?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false
    username: TT
    password: hc12345678
    url: jdbc:mysql://localhost:3306/TT?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false
    username: root
    password: win2020
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    druid:
springboot/src/main/resources/application.yml
@@ -1,3 +1,3 @@
spring:
  profiles:
    active: dev
    active: debug