소스 검색

优化 安徽客户提交bug 报表专家功能调整

java110 5 년 전
부모
커밋
cb4527a962

+ 9 - 0
java110-bean/src/main/java/com/java110/dto/fee/FeeDetailDto.java

@@ -35,6 +35,7 @@ public class FeeDetailDto extends PageDto implements Serializable {
     private String state;
     private String state;
     private String stateName;
     private String stateName;
     private String curYear;
     private String curYear;
+    private String configId;
 
 
 
 
     public String getPrimeRate() {
     public String getPrimeRate() {
@@ -181,4 +182,12 @@ public class FeeDetailDto extends PageDto implements Serializable {
     public void setCurYear(String curYear) {
     public void setCurYear(String curYear) {
         this.curYear = curYear;
         this.curYear = curYear;
     }
     }
+
+    public String getConfigId() {
+        return configId;
+    }
+
+    public void setConfigId(String configId) {
+        this.configId = configId;
+    }
 }
 }

+ 18 - 0
java110-bean/src/main/java/com/java110/dto/report/ReportFeeDetailDto.java

@@ -27,6 +27,8 @@ public class ReportFeeDetailDto extends PageDto implements Serializable {
     private String state;
     private String state;
     private String curStartYear;
     private String curStartYear;
     private String curEndYear;
     private String curEndYear;
+    private String configId;
+    private String payerObjId;
 
 
     public String getDetailId() {
     public String getDetailId() {
         return detailId;
         return detailId;
@@ -139,4 +141,20 @@ public class ReportFeeDetailDto extends PageDto implements Serializable {
     public void setCurEndYear(String curEndYear) {
     public void setCurEndYear(String curEndYear) {
         this.curEndYear = curEndYear;
         this.curEndYear = curEndYear;
     }
     }
+
+    public String getConfigId() {
+        return configId;
+    }
+
+    public void setConfigId(String configId) {
+        this.configId = configId;
+    }
+
+    public String getPayerObjId() {
+        return payerObjId;
+    }
+
+    public void setPayerObjId(String payerObjId) {
+        this.payerObjId = payerObjId;
+    }
 }
 }

+ 14 - 0
java110-db/src/main/resources/mapper/fee/FeeDetailServiceDaoImplMapper.xml

@@ -111,8 +111,15 @@
         t.community_id,t.community_id communityId,t.b_id,t.b_id bId,t.fee_id,t.fee_id feeId ,t.create_time createTime,
         t.community_id,t.community_id communityId,t.b_id,t.b_id bId,t.fee_id,t.fee_id feeId ,t.create_time createTime,
         t.state,d.name stateName,t.start_time,t.end_time,t.start_time startTime,t.end_time endTime
         t.state,d.name stateName,t.start_time,t.end_time,t.start_time startTime,t.end_time endTime
         from pay_fee_detail t
         from pay_fee_detail t
+        <if test="configId != null and configId != ''">
+            inner join pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
+        </if>
         left join t_dict d on t.state = d.status_cd and d.table_name = 'pay_fee_detail' and d.table_columns = 'state'
         left join t_dict d on t.state = d.status_cd and d.table_name = 'pay_fee_detail' and d.table_columns = 'state'
         where 1 =1
         where 1 =1
+        <if test="configId != null and configId != ''">
+            and pf.configId = #{configId}
+            and pf.payerObjId = #{payerObjId}
+        </if>
         <if test="primeRate !=null and primeRate != ''">
         <if test="primeRate !=null and primeRate != ''">
             and t.prime_rate= #{primeRate}
             and t.prime_rate= #{primeRate}
         </if>
         </if>
@@ -205,7 +212,14 @@
     <select id="queryFeeDetailsCount" parameterType="Map" resultType="Map">
     <select id="queryFeeDetailsCount" parameterType="Map" resultType="Map">
         select count(1) count
         select count(1) count
         from pay_fee_detail t
         from pay_fee_detail t
+        <if test="configId != null and configId != ''">
+            inner join pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
+        </if>
         where 1 =1
         where 1 =1
+        <if test="configId != null and configId != ''">
+            and pf.configId = #{configId}
+            and pf.payerObjId = #{payerObjId}
+        </if>
         <if test="primeRate !=null and primeRate != ''">
         <if test="primeRate !=null and primeRate != ''">
             and t.prime_rate= #{primeRate}
             and t.prime_rate= #{primeRate}
         </if>
         </if>

+ 4 - 2
java110-db/src/main/resources/mapper/fee/FeeReceiptServiceDaoImplMapper.xml

@@ -32,7 +32,8 @@
         objName,t.community_id,t.community_id communityId,t.receipt_id,t.receipt_id receiptId,t.obj_type,t.obj_type
         objName,t.community_id,t.community_id communityId,t.receipt_id,t.receipt_id receiptId,t.obj_type,t.obj_type
         objType,t.create_time createTime,frd.fee_name feeName
         objType,t.create_time createTime,frd.fee_name feeName
         from fee_receipt t
         from fee_receipt t
-        left join fee_receipt_detail frd on t.receipt_id = frd.receipt_id and frd.status_cd = '0'
+        inner join fee_receipt_detail frd on t.receipt_id = frd.receipt_id and frd.status_cd = '0'
+        inner join pay_fee pf on frd.fee_id = pf.fee_id and pf.status_cd = '0'
         where 1 =1
         where 1 =1
         <if test="amount !=null and amount != ''">
         <if test="amount !=null and amount != ''">
             and t.amount= #{amount}
             and t.amount= #{amount}
@@ -272,7 +273,8 @@
     <select id="queryFeeReceiptsCount" parameterType="Map" resultType="Map">
     <select id="queryFeeReceiptsCount" parameterType="Map" resultType="Map">
         select count(1) count
         select count(1) count
         from fee_receipt t
         from fee_receipt t
-        left join fee_receipt_detail frd on t.receipt_id = frd.receipt_id and frd.status_cd = '0'
+        inner join fee_receipt_detail frd on t.receipt_id = frd.receipt_id and frd.status_cd = '0'
+        inner join pay_fee pf on frd.fee_id = pf.fee_id and pf.status_cd = '0'
         where 1 =1
         where 1 =1
         <if test="amount !=null and amount != ''">
         <if test="amount !=null and amount != ''">
             and t.amount= #{amount}
             and t.amount= #{amount}

+ 2 - 0
java110-db/src/main/resources/mapper/fee/MeterWaterServiceDaoImplMapper.xml

@@ -126,6 +126,7 @@
         objId,t.pre_reading_time,t.pre_reading_time preReadingTime,t.b_id,t.b_id bId,t.community_id,t.community_id
         objId,t.pre_reading_time,t.pre_reading_time preReadingTime,t.b_id,t.b_id bId,t.community_id,t.community_id
         communityId,t.obj_type,t.obj_type objType,t.fee_id,t.fee_id feeId,t.obj_name,t.obj_name objName
         communityId,t.obj_type,t.obj_type objType,t.fee_id,t.fee_id feeId,t.obj_name,t.obj_name objName
         from meter_water t
         from meter_water t
+        inner join pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
         where 1 =1
         where 1 =1
         <if test="remark !=null and remark != ''">
         <if test="remark !=null and remark != ''">
             and t.remark= #{remark}
             and t.remark= #{remark}
@@ -227,6 +228,7 @@
     <select id="queryMeterWatersCount" parameterType="Map" resultType="Map">
     <select id="queryMeterWatersCount" parameterType="Map" resultType="Map">
         select count(1) count
         select count(1) count
         from meter_water t
         from meter_water t
+        inner join pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
         where 1 =1
         where 1 =1
         <if test="remark !=null and remark != ''">
         <if test="remark !=null and remark != ''">
             and t.remark= #{remark}
             and t.remark= #{remark}

+ 2 - 0
java110-db/src/main/resources/mapper/fee/ReturnPayFeeServiceDaoImplMapper.xml

@@ -172,6 +172,7 @@
         d.name feeTypeCdName,
         d.name feeTypeCdName,
         c.name stateName
         c.name stateName
         from return_pay_fee t
         from return_pay_fee t
+        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'
         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'
         inner join t_dict c on t.state = c.status_cd and c.table_name = 'return_pay_fee' and c.table_columns = 'state'
         inner join t_dict c on t.state = c.status_cd and c.table_name = 'return_pay_fee' and c.table_columns = 'state'
         where 1 =1
         where 1 =1
@@ -250,6 +251,7 @@
     <select id="queryReturnPayFeesCount" parameterType="Map" resultType="Map">
     <select id="queryReturnPayFeesCount" parameterType="Map" resultType="Map">
         select count(1) count
         select count(1) count
         from return_pay_fee t
         from return_pay_fee t
+        inner join pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
         where 1 =1
         where 1 =1
         <if test="reason !=null and reason != ''">
         <if test="reason !=null and reason != ''">
             and t.reason= #{reason}
             and t.reason= #{reason}

+ 28 - 10
java110-db/src/main/resources/mapper/report/ReportFeeServiceDaoImplMapper.xml

@@ -6,11 +6,22 @@
 
 
     <!-- 查询实收金额 -->
     <!-- 查询实收金额 -->
     <select id="getFeeReceivedAmount" parameterType="com.java110.dto.report.ReportFeeDetailDto" resultType="Map">
     <select id="getFeeReceivedAmount" parameterType="com.java110.dto.report.ReportFeeDetailDto" resultType="Map">
-        select SUM(t.received_amount) receivedAmount from pay_fee_detail t
+
+        select SUM(t.received_amount) receivedAmount
+        from pay_fee_detail t
+        <if test="configId != null and configId != ''">
+            inner join pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
+        </if>
         where 1=1
         where 1=1
-        and t.fee_id = #{feeId}
+        <if test="configId != null and configId != ''">
+            and pf.config_id = #{configId}
+            and pf.payer_obj_id = #{payerObjId}
+        </if>
+        <if test="feeId !=null and feeId != ''">
+            and t.fee_id = #{feeId}
+        </if>
         <if test="startTime != null">
         <if test="startTime != null">
-        and t.create_time &gt; #{startTime}
+            and t.create_time &gt; #{startTime}
         </if>
         </if>
         <if test="endTime != null">
         <if test="endTime != null">
             and t.create_time &lt; #{endTime}
             and t.create_time &lt; #{endTime}
@@ -39,18 +50,25 @@
     <!-- 查询 费用 -->
     <!-- 查询 费用 -->
     <select id="getFees" parameterType="com.java110.dto.report.ReportFeeDto"
     <select id="getFees" parameterType="com.java110.dto.report.ReportFeeDto"
             resultType="com.java110.dto.report.ReportFeeDto">
             resultType="com.java110.dto.report.ReportFeeDto">
-                select pfc.fee_name feeName,pfc.start_time configStartTime,pfc.end_time configEndTime,pfc.config_id configId,pfc.fee_type_cd feeTypeCd,
-        pfc.additional_amount additionalAmount,pfc.bill_type billType,pfc.computing_formula computingFormula,pfc.computing_formula_text computingFormulaText,
+        select pfc.fee_name feeName,pfc.start_time configStartTime,pfc.end_time configEndTime,pfc.config_id
+        configId,pfc.fee_type_cd feeTypeCd,
+        pfc.additional_amount additionalAmount,pfc.bill_type billType,pfc.computing_formula
+        computingFormula,pfc.computing_formula_text computingFormulaText,
         pfc.payment_cd paymentCd,
         pfc.payment_cd paymentCd,
-        pfc.payment_cycle paymentCycle,pfc.square_price squarePrice,pfc.fee_flag feeFlag,t.payer_obj_id payerObjId,t.payer_obj_type payerObjType,
-        t.amount,t.create_time createTime,t.end_time endTime,t.fee_id feeId,t.income_obj_id incomeObjId,t.start_time startTime,t.state,
-        br.room_id roomId,br.room_num roomNum,oc.car_num carNum,ss.store_id storeId,ss.`name` storeName,ss.store_type_cd storeTypeCd,
-        t.community_id communityId,pfa.value importFeeName,ifd.end_time importFeeEndTime,mw.cur_degrees curDegrees,mw.pre_degrees preDegrees,
+        pfc.payment_cycle paymentCycle,pfc.square_price squarePrice,pfc.fee_flag feeFlag,t.payer_obj_id
+        payerObjId,t.payer_obj_type payerObjType,
+        t.amount,t.create_time createTime,t.end_time endTime,t.fee_id feeId,t.income_obj_id incomeObjId,t.start_time
+        startTime,t.state,
+        br.room_id roomId,br.room_num roomNum,oc.car_num carNum,ss.store_id storeId,ss.`name` storeName,ss.store_type_cd
+        storeTypeCd,
+        t.community_id communityId,pfa.value importFeeName,ifd.end_time importFeeEndTime,mw.cur_degrees
+        curDegrees,mw.pre_degrees preDegrees,
         mw.pre_reading_time preReadingTime,mw.cur_reading_time curReadingTime
         mw.pre_reading_time preReadingTime,mw.cur_reading_time curReadingTime
         from pay_fee t
         from pay_fee t
         INNER JOIN pay_fee_config pfc on t.config_id = pfc.config_id and pfc.status_cd = '0'
         INNER JOIN pay_fee_config pfc on t.config_id = pfc.config_id and pfc.status_cd = '0'
         left join building_room br on t.payer_obj_id = br.room_id and t.payer_obj_type = '3333' and br.status_cd = '0'
         left join building_room br on t.payer_obj_id = br.room_id and t.payer_obj_type = '3333' and br.status_cd = '0'
-        left join owner_car oc on t.payer_obj_id = oc.car_id and t.payer_obj_type = '6666' and oc.status_cd = '0'  and oc.car_type_cd='1001'
+        left join owner_car oc on t.payer_obj_id = oc.car_id and t.payer_obj_type = '6666' and oc.status_cd = '0' and
+        oc.car_type_cd='1001'
         left join s_store ss on t.income_obj_id = ss.store_id and ss.status_cd = '0'
         left join s_store ss on t.income_obj_id = ss.store_id and ss.status_cd = '0'
         LEFT JOIN pay_fee_attrs pfa on t.fee_id = pfa.fee_id and pfa.spec_cd = '390002' and pfa.status_cd = '0'
         LEFT JOIN pay_fee_attrs pfa on t.fee_id = pfa.fee_id and pfa.spec_cd = '390002' and pfa.status_cd = '0'
         left join import_fee_detail ifd on t.fee_id = ifd.fee_id and ifd.status_cd = '0' and t.fee_flag = '2006012'
         left join import_fee_detail ifd on t.fee_id = ifd.fee_id and ifd.status_cd = '0' and t.fee_flag = '2006012'

+ 11 - 5
service-report/src/main/java/com/java110/report/smo/impl/GeneratorFeeYearStatisticsInnerServiceSMOImpl.java

@@ -255,7 +255,8 @@ public class GeneratorFeeYearStatisticsInnerServiceSMOImpl implements IGenerator
         reportFeeDto.setPayerObjId(reportRoomDto.getRoomId());
         reportFeeDto.setPayerObjId(reportRoomDto.getRoomId());
         reportFeeDto.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
         reportFeeDto.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
         //reportFeeDto.setState(FeeDto.STATE_DOING);
         //reportFeeDto.setState(FeeDto.STATE_DOING);
-        reportFeeDto.setFeeFlag(FeeDto.FEE_FLAG_CYCLE);
+        //reportFeeDto.setFeeFlag(FeeDto.FEE_FLAG_CYCLE);
+
         List<ReportFeeDto> feeDtos = reportFeeServiceDaoImpl.getFees(reportFeeDto);
         List<ReportFeeDto> feeDtos = reportFeeServiceDaoImpl.getFees(reportFeeDto);
 
 
         if (feeDtos == null || feeDtos.size() < 1) {
         if (feeDtos == null || feeDtos.size() < 1) {
@@ -280,7 +281,7 @@ public class GeneratorFeeYearStatisticsInnerServiceSMOImpl implements IGenerator
         reportFeeYearCollectionDto.setCommunityId(reportRoomDto.getCommunityId());
         reportFeeYearCollectionDto.setCommunityId(reportRoomDto.getCommunityId());
         reportFeeYearCollectionDto.setConfigId(tmpReportFeeDto.getConfigId());
         reportFeeYearCollectionDto.setConfigId(tmpReportFeeDto.getConfigId());
         reportFeeYearCollectionDto.setObjId(tmpReportFeeDto.getPayerObjId());
         reportFeeYearCollectionDto.setObjId(tmpReportFeeDto.getPayerObjId());
-        reportFeeYearCollectionDto.setFeeId(tmpReportFeeDto.getFeeId());
+        //reportFeeYearCollectionDto.setFeeId(tmpReportFeeDto.getFeeId());
         reportFeeYearCollectionDto.setObjType(tmpReportFeeDto.getPayerObjType());
         reportFeeYearCollectionDto.setObjType(tmpReportFeeDto.getPayerObjType());
         List<ReportFeeYearCollectionDto> statistics = BeanConvertUtil.covertBeanList(
         List<ReportFeeYearCollectionDto> statistics = BeanConvertUtil.covertBeanList(
                 reportFeeYearCollectionServiceDaoImpl.getReportFeeYearCollectionInfo(BeanConvertUtil.beanCovertMap(reportFeeYearCollectionDto)),
                 reportFeeYearCollectionServiceDaoImpl.getReportFeeYearCollectionInfo(BeanConvertUtil.beanCovertMap(reportFeeYearCollectionDto)),
@@ -297,9 +298,9 @@ public class GeneratorFeeYearStatisticsInnerServiceSMOImpl implements IGenerator
             reportFeeYearCollectionPo.setObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
             reportFeeYearCollectionPo.setObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
             reportFeeYearCollectionPo.setFeeName(StringUtil.isEmpty(tmpReportFeeDto.getImportFeeName()) ? tmpReportFeeDto.getFeeName() : tmpReportFeeDto.getImportFeeName());
             reportFeeYearCollectionPo.setFeeName(StringUtil.isEmpty(tmpReportFeeDto.getImportFeeName()) ? tmpReportFeeDto.getFeeName() : tmpReportFeeDto.getImportFeeName());
             if (RoomDto.ROOM_TYPE_ROOM.equals(reportRoomDto.getRoomType())) {
             if (RoomDto.ROOM_TYPE_ROOM.equals(reportRoomDto.getRoomType())) {
-                reportFeeYearCollectionPo.setObjName(reportRoomDto.getFloorNum() + "-" + reportRoomDto.getUnitNum() + "-" + reportRoomDto.getRoomNum() );
+                reportFeeYearCollectionPo.setObjName(reportRoomDto.getFloorNum() + "-" + reportRoomDto.getUnitNum() + "-" + reportRoomDto.getRoomNum());
             } else {
             } else {
-                reportFeeYearCollectionPo.setObjName(reportRoomDto.getFloorNum() + "-" + reportRoomDto.getRoomNum() );
+                reportFeeYearCollectionPo.setObjName(reportRoomDto.getFloorNum() + "-" + reportRoomDto.getRoomNum());
             }
             }
             reportFeeYearCollectionPo.setOwnerId(reportRoomDto.getOwnerId());
             reportFeeYearCollectionPo.setOwnerId(reportRoomDto.getOwnerId());
             reportFeeYearCollectionPo.setOwnerName(reportRoomDto.getOwnerName());
             reportFeeYearCollectionPo.setOwnerName(reportRoomDto.getOwnerName());
@@ -398,6 +399,10 @@ public class GeneratorFeeYearStatisticsInnerServiceSMOImpl implements IGenerator
         int curYear = Calendar.getInstance().get(Calendar.YEAR);
         int curYear = Calendar.getInstance().get(Calendar.YEAR);
         double cycleMonth = 12;
         double cycleMonth = 12;
 
 
+        if (FeeDto.FEE_FLAG_ONCE.equals(tmpReportFeeDto.getFeeFlag())) { // 一次性费用没有应收 所以写成0
+            return 0;
+        }
+
         if (endYear == curYear) {
         if (endYear == curYear) {
             try {
             try {
                 cycleMonth = computeFeeSMOImpl.dayCompare(DateUtil.getDateFromString(curYear + "-01-01", DateUtil.DATE_FORMATE_STRING_B), tmpReportFeeDto.getConfigEndTime());
                 cycleMonth = computeFeeSMOImpl.dayCompare(DateUtil.getDateFromString(curYear + "-01-01", DateUtil.DATE_FORMATE_STRING_B), tmpReportFeeDto.getConfigEndTime());
@@ -419,7 +424,8 @@ public class GeneratorFeeYearStatisticsInnerServiceSMOImpl implements IGenerator
      */
      */
     private double getReceivedAmount(ReportFeeDto tmpReportFeeDto, int year) {
     private double getReceivedAmount(ReportFeeDto tmpReportFeeDto, int year) {
         ReportFeeDetailDto feeDetailDto = new ReportFeeDetailDto();
         ReportFeeDetailDto feeDetailDto = new ReportFeeDetailDto();
-        feeDetailDto.setFeeId(tmpReportFeeDto.getFeeId());
+        feeDetailDto.setConfigId(tmpReportFeeDto.getConfigId());
+        feeDetailDto.setPayerObjId(tmpReportFeeDto.getPayerObjId());
         String flag = CommonCache.getValue(RECEIVED_TIME);
         String flag = CommonCache.getValue(RECEIVED_TIME);
         if (RECEIVED_TIME_START.equals(flag)) {
         if (RECEIVED_TIME_START.equals(flag)) {
             feeDetailDto.setCurStartYear(year + "");
             feeDetailDto.setCurStartYear(year + "");