|
@@ -9,7 +9,6 @@ import com.kingdee.bos.framework.ejb.EJBFactory;
|
|
|
import com.kingdee.bos.metadata.entity.*;
|
|
import com.kingdee.bos.metadata.entity.*;
|
|
|
import com.kingdee.bos.metadata.query.util.CompareType;
|
|
import com.kingdee.bos.metadata.query.util.CompareType;
|
|
|
import com.kingdee.bos.util.BOSUuid;
|
|
import com.kingdee.bos.util.BOSUuid;
|
|
|
-import com.kingdee.eas.base.permission.util.ToolUtils;
|
|
|
|
|
import com.kingdee.eas.basedata.org.AdminOrgUnitInfo;
|
|
import com.kingdee.eas.basedata.org.AdminOrgUnitInfo;
|
|
|
import com.kingdee.eas.basedata.org.HROrgUnitInfo;
|
|
import com.kingdee.eas.basedata.org.HROrgUnitInfo;
|
|
|
import com.kingdee.eas.basedata.org.PositionInfo;
|
|
import com.kingdee.eas.basedata.org.PositionInfo;
|
|
@@ -52,6 +51,7 @@ import java.util.*;
|
|
|
* date: 2025/4/24 18:09 <br>
|
|
* date: 2025/4/24 18:09 <br>
|
|
|
* author: lhbj <br>
|
|
* author: lhbj <br>
|
|
|
* version: 1.0 <br>
|
|
* version: 1.0 <br>
|
|
|
|
|
+ * 爱贝壳
|
|
|
*/
|
|
*/
|
|
|
public class WaterElectricityListHandler extends WaterElectricityBatchListHandler {
|
|
public class WaterElectricityListHandler extends WaterElectricityBatchListHandler {
|
|
|
private static Logger logger = LoggerFactory.getLogger(WaterElectricityListHandler.class);
|
|
private static Logger logger = LoggerFactory.getLogger(WaterElectricityListHandler.class);
|
|
@@ -64,7 +64,7 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
|
|
|
* @param endPeriodDateStr
|
|
* @param endPeriodDateStr
|
|
|
* @return
|
|
* @return
|
|
|
*/
|
|
*/
|
|
|
- protected StringBuilder getPersonWaterElectricitySql1(String startPeriodDateStr, String endPeriodDateStr, Collection<String> billids) {
|
|
|
|
|
|
|
+ protected StringBuilder getPersonWaterElectricitySql(String startPeriodDateStr, String endPeriodDateStr, Collection<String> billids) {
|
|
|
StringBuilder sel = new StringBuilder();
|
|
StringBuilder sel = new StringBuilder();
|
|
|
sel.append(" select p.fid pid,p.fname_l2 pName,p.fnumber pNumber,ops.fid opsid,ops.CFCheckInDate,ops.CFCheckOutDate,ops.CFDormitoryID dormitoryID, ");
|
|
sel.append(" select p.fid pid,p.fname_l2 pName,p.fnumber pNumber,ops.fid opsid,ops.CFCheckInDate,ops.CFCheckOutDate,ops.CFDormitoryID dormitoryID, ");
|
|
|
sel.append(" wpp.fid wppid,wpp.CFStartDate,wpp.CFEndDate,wpp.CFWaterprice,wpp.CFElectricityprice, ");
|
|
sel.append(" wpp.fid wppid,wpp.CFStartDate,wpp.CFEndDate,wpp.CFWaterprice,wpp.CFElectricityprice, ");
|
|
@@ -83,182 +83,32 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
|
|
|
sel.append(" left join t_bd_person p on pp.FPERSONID = p.fid ");
|
|
sel.append(" left join t_bd_person p on pp.FPERSONID = p.fid ");
|
|
|
sel.append(" left join T_HR_BDEmployeeType bt on bt.fid = p.FEmployeeTypeID ");
|
|
sel.append(" left join T_HR_BDEmployeeType bt on bt.fid = p.FEmployeeTypeID ");
|
|
|
sel.append(" left join CT_DOR_Dormitory dy on ops.CFDormitoryID=dy.fid ");
|
|
sel.append(" left join CT_DOR_Dormitory dy on ops.CFDormitoryID=dy.fid ");
|
|
|
- sel.append(" left join CT_WAT_WaterPowerPricing wpp on wpp.CFEndDate >='" + startPeriodDateStr + "' ");
|
|
|
|
|
|
|
+ sel.append(" left join CT_WAT_WaterPowerPricing wpp on wpp.CFEndDate>='" + startPeriodDateStr + "' ");
|
|
|
sel.append(" and wpp.CFStartDate<='" + endPeriodDateStr + "' ");
|
|
sel.append(" and wpp.CFStartDate<='" + endPeriodDateStr + "' ");
|
|
|
sel.append(" left join CT_MAN_WaterPowerMeterReading wpmr on wpmr.CFDormitoryID=ops.CFDormitoryID ");
|
|
sel.append(" left join CT_MAN_WaterPowerMeterReading wpmr on wpmr.CFDormitoryID=ops.CFDormitoryID ");
|
|
|
// sel.append(" and wpmr.CFYears<=ops.CFCheckOutDate ");
|
|
// sel.append(" and wpmr.CFYears<=ops.CFCheckOutDate ");
|
|
|
// sel.append(" and DATEADD(DD,-1,DATEADD(MM,DATEDIFF(MM,0,wpmr.CFYears)+1,0))>= ops.CFCheckInDate ");
|
|
// sel.append(" and DATEADD(DD,-1,DATEADD(MM,DATEDIFF(MM,0,wpmr.CFYears)+1,0))>= ops.CFCheckInDate ");
|
|
|
sel.append(" and wpmr.CFYears >= '" + startPeriodDateStr + "' ");
|
|
sel.append(" and wpmr.CFYears >= '" + startPeriodDateStr + "' ");
|
|
|
sel.append(" and wpmr.CFYears <= '" + endPeriodDateStr + "' ");
|
|
sel.append(" and wpmr.CFYears <= '" + endPeriodDateStr + "' ");
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
sel.append(" left join CT_WOE_WaterElectricity wey on wey.FSourceFunction=ops.fid and wey.CFPersonID=pp.FPERSONID ");
|
|
sel.append(" left join CT_WOE_WaterElectricity wey on wey.FSourceFunction=ops.fid and wey.CFPersonID=pp.FPERSONID ");
|
|
|
sel.append(" and wey.CFStartDate='" + startPeriodDateStr + "' ");
|
|
sel.append(" and wey.CFStartDate='" + startPeriodDateStr + "' ");
|
|
|
- sel.append(" and wey.CFEndDate= '" + endPeriodDateStr + "' ");
|
|
|
|
|
|
|
+ sel.append(" and wey.CFEndDate='" + endPeriodDateStr + "' ");
|
|
|
sel.append(" where ");
|
|
sel.append(" where ");
|
|
|
sel.append(" to_char(ops.CFCheckOutDate,'yyyy-MM-dd') >= '" + startPeriodDateStr + "' ");
|
|
sel.append(" to_char(ops.CFCheckOutDate,'yyyy-MM-dd') >= '" + startPeriodDateStr + "' ");
|
|
|
sel.append(" and to_char(ops.CFCheckInDate ,'yyyy-MM-dd') <='" + endPeriodDateStr + "' ");
|
|
sel.append(" and to_char(ops.CFCheckInDate ,'yyyy-MM-dd') <='" + endPeriodDateStr + "' ");
|
|
|
- if (null != billids && !billids.isEmpty()) {
|
|
|
|
|
- sel.append(" and wey.fid in( " +ToolUtils.aryToStr(billids) + ")");
|
|
|
|
|
|
|
+ if (null != billids && (!billids.isEmpty())) {
|
|
|
|
|
+ sel.append(" and wey.fid in('' ");
|
|
|
|
|
+ for (String id : billids) {
|
|
|
|
|
+ sel.append(",'");
|
|
|
|
|
+ sel.append(id);
|
|
|
|
|
+ sel.append("'");
|
|
|
|
|
+ }
|
|
|
|
|
+ sel.append(")");
|
|
|
}
|
|
}
|
|
|
System.out.println("getPersonWaterElectricitySql:" + sel);
|
|
System.out.println("getPersonWaterElectricitySql:" + sel);
|
|
|
return sel;
|
|
return sel;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * 获取水电费详细Sql(SQL Server专用,逻辑已确认:房间向上追溯上级节点单价,水/电独立追溯)
|
|
|
|
|
- * 核心逻辑:
|
|
|
|
|
- * 1. 递归CTE遍历房间及所有上级节点(楼栋、小区等),保留起点房间ID关联
|
|
|
|
|
- * 2. 独立筛选水/电单价:非null优先、层级越近优先
|
|
|
|
|
- * 3. 优先级:树形节点单价 → 定价表单价
|
|
|
|
|
- * @param startPeriodDateStr 开始日期(格式:yyyy-MM-dd)
|
|
|
|
|
- * @param endPeriodDateStr 结束日期(格式:yyyy-MM-dd)
|
|
|
|
|
- * @param billids 账单ID集合(可为null/空,非空时追加筛选条件)
|
|
|
|
|
- * @return 拼接后的SQL字符串
|
|
|
|
|
- */
|
|
|
|
|
- protected StringBuilder getPersonWaterElectricitySql(String dbType, String startPeriodDateStr, String endPeriodDateStr, Collection<String> billids) {
|
|
|
|
|
-
|
|
|
|
|
- StringBuilder sel = new StringBuilder();
|
|
|
|
|
-
|
|
|
|
|
- // 1. 递归CTE:追溯房间及所有上级节点(防自引用,避免死循环)
|
|
|
|
|
- sel.append("/*dialect*/ WITH DormPriceCTE AS (");
|
|
|
|
|
- // 锚点成员:所有节点作为起点(后续主查询关联房间,不影响逻辑)
|
|
|
|
|
- sel.append(" SELECT ");
|
|
|
|
|
- sel.append(" fid AS DormId,");
|
|
|
|
|
- sel.append(" fparentId,");
|
|
|
|
|
- sel.append(" CFWaterprice,");
|
|
|
|
|
- sel.append(" CFElectricityprice,");
|
|
|
|
|
- sel.append(" 0 AS RecursionLevel");
|
|
|
|
|
- sel.append(" FROM CT_DOR_Dormitory");
|
|
|
|
|
- sel.append(" UNION ALL");
|
|
|
|
|
- // 递归成员:向上遍历上级节点,保留起点房间ID(核心逻辑)
|
|
|
|
|
- sel.append(" SELECT ");
|
|
|
|
|
- sel.append(" child.DormId AS DormId,");
|
|
|
|
|
- sel.append(" parent.fparentId,");
|
|
|
|
|
- sel.append(" parent.CFWaterprice,");
|
|
|
|
|
- sel.append(" parent.CFElectricityprice,");
|
|
|
|
|
- sel.append(" child.RecursionLevel + 1 AS RecursionLevel");
|
|
|
|
|
- sel.append(" FROM DormPriceCTE child");
|
|
|
|
|
- sel.append(" INNER JOIN CT_DOR_Dormitory parent ");
|
|
|
|
|
- sel.append(" ON child.fparentId = parent.fid ");
|
|
|
|
|
- sel.append(" AND parent.fid != child.DormId ");
|
|
|
|
|
- sel.append("),");
|
|
|
|
|
-
|
|
|
|
|
- // 2. 独立筛选「水单价」:按起点房间ID分组,取最近有效水价(非null优先、层级近优先)
|
|
|
|
|
- sel.append("WaterLatestPrice AS (");
|
|
|
|
|
- sel.append(" SELECT ");
|
|
|
|
|
- sel.append(" DormId,");
|
|
|
|
|
- sel.append(" CFWaterprice AS LatestWaterPrice,");
|
|
|
|
|
- sel.append(" ROW_NUMBER() OVER (");
|
|
|
|
|
- sel.append(" PARTITION BY DormId");
|
|
|
|
|
- sel.append(" ORDER BY ");
|
|
|
|
|
- sel.append(" CASE WHEN CFWaterprice IS NOT NULL THEN 0 ELSE 1 END,");
|
|
|
|
|
- sel.append(" RecursionLevel ASC");
|
|
|
|
|
- sel.append(" ) AS WaterRowNum");
|
|
|
|
|
- sel.append(" FROM DormPriceCTE");
|
|
|
|
|
- sel.append("),");
|
|
|
|
|
-
|
|
|
|
|
- // 3. 独立筛选「电单价」:逻辑同水单价,独立判断电单价字段
|
|
|
|
|
- sel.append("ElecLatestPrice AS (");
|
|
|
|
|
- sel.append(" SELECT ");
|
|
|
|
|
- sel.append(" DormId,");
|
|
|
|
|
- sel.append(" CFElectricityprice AS LatestElecPrice,");
|
|
|
|
|
- sel.append(" ROW_NUMBER() OVER (");
|
|
|
|
|
- sel.append(" PARTITION BY DormId");
|
|
|
|
|
- sel.append(" ORDER BY ");
|
|
|
|
|
- sel.append(" CASE WHEN CFElectricityprice IS NOT NULL THEN 0 ELSE 1 END,");
|
|
|
|
|
- sel.append(" RecursionLevel ASC");
|
|
|
|
|
- sel.append(" ) AS ElecRowNum");
|
|
|
|
|
- sel.append(" FROM DormPriceCTE");
|
|
|
|
|
- sel.append(")");
|
|
|
|
|
-
|
|
|
|
|
- // 4. 主查询:关联各表,返回结果字段(优先级:树形单价 → 定价表单价)
|
|
|
|
|
- sel.append(" SELECT ");
|
|
|
|
|
- sel.append(" p.fid pid,");
|
|
|
|
|
- sel.append(" p.fname_l2 pName,");
|
|
|
|
|
- sel.append(" p.fnumber pNumber,");
|
|
|
|
|
- sel.append(" ops.fid opsid,");
|
|
|
|
|
- sel.append(" ops.CFCheckInDate,");
|
|
|
|
|
- sel.append(" ops.CFCheckOutDate,");
|
|
|
|
|
- sel.append(" ops.CFDormitoryID dormitoryID,");
|
|
|
|
|
- sel.append(" wpp.fid wppid,");
|
|
|
|
|
- sel.append(" wpp.CFStartDate,");
|
|
|
|
|
- sel.append(" wpp.CFEndDate,");
|
|
|
|
|
- sel.append(" COALESCE(wlp.LatestWaterPrice, wpp.CFWaterprice) AS CFWaterprice,");
|
|
|
|
|
- sel.append(" COALESCE(elp.LatestElecPrice, wpp.CFElectricityprice) AS CFElectricityprice,");
|
|
|
|
|
- sel.append(" wpmr.fid wpmrid,");
|
|
|
|
|
- sel.append(" wpmr.CFYears wpmrStartDate,");
|
|
|
|
|
- sel.append(" DATEADD(DAY, -1, DATEADD(MONTH, DATEDIFF(MONTH, 0, wpmr.CFYears) + 1, 0)) AS wpmrEndDate,");
|
|
|
|
|
- sel.append(" ISNULL(wpmr.CFTotalWaterTons, 0) CFTotalWaterTons,");
|
|
|
|
|
- sel.append(" ISNULL(wpmr.CFTotalElecDegrees, 0) CFTotalElecDegrees,");
|
|
|
|
|
- sel.append(" ISNULL(wpmr.CFCurMonthWater, 0) CFCurMonthWater,");
|
|
|
|
|
- sel.append(" ISNULL(wpmr.CFCurMonthElecDegrees, 0) CFCurMonthElecDegrees,");
|
|
|
|
|
- sel.append(" wpmr.CFMeterReaPersonID,");
|
|
|
|
|
- sel.append(" pp.FPrimaryPositionID,");
|
|
|
|
|
- sel.append(" pp.FPersonDep,");
|
|
|
|
|
- sel.append(" CASE bt.finservice ");
|
|
|
|
|
- sel.append(" WHEN 1 THEN 'active' ");
|
|
|
|
|
- sel.append(" WHEN 4 THEN 'active' ");
|
|
|
|
|
- sel.append(" ELSE 'inactive' ");
|
|
|
|
|
- sel.append(" END AS InService");
|
|
|
|
|
- sel.append(" FROM CT_OCC_Occupants ops");
|
|
|
|
|
- sel.append(" LEFT JOIN T_HR_PersonPosition pp ON pp.fid = ops.CFPersonPositionID");
|
|
|
|
|
- sel.append(" LEFT JOIN t_bd_person p ON pp.FPERSONID = p.fid");
|
|
|
|
|
- sel.append(" LEFT JOIN T_HR_BDEmployeeType bt ON bt.fid = p.FEmployeeTypeID");
|
|
|
|
|
- sel.append(" LEFT JOIN CT_DOR_Dormitory dy ON ops.CFDormitoryID = dy.fid");
|
|
|
|
|
- sel.append(" LEFT JOIN WaterLatestPrice wlp ON dy.fid = wlp.DormId AND wlp.WaterRowNum = 1");
|
|
|
|
|
- sel.append(" LEFT JOIN ElecLatestPrice elp ON dy.fid = elp.DormId AND elp.ElecRowNum = 1");
|
|
|
|
|
- // 定价表关联:日期参数用传入的start/endPeriodDateStr,显式转换为date类型
|
|
|
|
|
- sel.append(" LEFT JOIN CT_WAT_WaterPowerPricing wpp ");
|
|
|
|
|
- sel.append(" ON wpp.CFStartDate <= CONVERT(date, '").append(startPeriodDateStr).append("')");
|
|
|
|
|
- sel.append(" AND wpp.CFEndDate >= CONVERT(date, '").append(endPeriodDateStr).append("')");
|
|
|
|
|
- // 抄表记录关联:按房间ID+日期范围匹配
|
|
|
|
|
- sel.append(" LEFT JOIN CT_MAN_WaterPowerMeterReading wpmr ");
|
|
|
|
|
- sel.append(" ON wpmr.CFDormitoryID = ops.CFDormitoryID");
|
|
|
|
|
- sel.append(" AND wpmr.CFYears <= ops.CFCheckOutDate");
|
|
|
|
|
- sel.append(" AND DATEADD(DAY, -1, DATEADD(MONTH, DATEDIFF(MONTH, 0, wpmr.CFYears) + 1, 0)) >= ops.CFCheckInDate");
|
|
|
|
|
- // 水电账单关联:按占用ID+人员ID+日期范围匹配(日期参数用传入值)
|
|
|
|
|
- sel.append(" LEFT JOIN CT_WOE_WaterElectricity wey ");
|
|
|
|
|
- sel.append(" ON wey.FSourceFunction = ops.fid ");
|
|
|
|
|
- sel.append(" AND wey.CFPersonID = pp.FPERSONID");
|
|
|
|
|
- sel.append(" AND wey.CFStartDate = CONVERT(date, '").append(startPeriodDateStr).append("')");
|
|
|
|
|
- sel.append(" AND wey.CFEndDate = CONVERT(date, '").append(endPeriodDateStr).append("')");
|
|
|
|
|
- // 筛选条件:占用周期与查询周期重叠(SQL Server用CONVERT替代to_char)
|
|
|
|
|
- sel.append(" WHERE ");
|
|
|
|
|
- sel.append(" CONVERT(varchar(10), ops.CFCheckOutDate, 23) >= '").append(startPeriodDateStr).append("'");
|
|
|
|
|
- sel.append(" AND CONVERT(varchar(10), ops.CFCheckInDate, 23) <= '").append(endPeriodDateStr).append("'");
|
|
|
|
|
-
|
|
|
|
|
- // 账单ID筛选:若传入billids集合,追加IN条件(避免空集合报错)
|
|
|
|
|
- if (null != billids && !billids.isEmpty()) {
|
|
|
|
|
- sel.append(" and wey.fid in( " +ToolUtils.aryToStr(billids) + ")");
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // 递归深度限制:10层足够覆盖日常树形(房间→楼栋→小区→...),避免异常
|
|
|
|
|
- sel.append(" OPTION (MAXRECURSION 10)");
|
|
|
|
|
-
|
|
|
|
|
- System.out.println("getPersonWaterElectricitySql:" + sel);
|
|
|
|
|
- return sel;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 获取水电费详细集合
|
|
* 获取水电费详细集合
|
|
@@ -274,7 +124,7 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
|
|
|
String startPeriodDateStr, String endPeriodDateStr, Collection<String> billids)
|
|
String startPeriodDateStr, String endPeriodDateStr, Collection<String> billids)
|
|
|
throws BOSException, SQLException, ShrWebBizException {
|
|
throws BOSException, SQLException, ShrWebBizException {
|
|
|
|
|
|
|
|
- StringBuilder sel = this.getPersonWaterElectricitySql("sqlserver",startPeriodDateStr, endPeriodDateStr, billids);
|
|
|
|
|
|
|
+ StringBuilder sel = this.getPersonWaterElectricitySql(startPeriodDateStr, endPeriodDateStr, billids);
|
|
|
IRowSet rs = DbUtil.executeQuery(ctx, sel.toString());
|
|
IRowSet rs = DbUtil.executeQuery(ctx, sel.toString());
|
|
|
List<Map<String, Object>> list = Lists.newArrayList();
|
|
List<Map<String, Object>> list = Lists.newArrayList();
|
|
|
while (rs.next()) {
|
|
while (rs.next()) {
|
|
@@ -335,6 +185,7 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 获取人员入住详情
|
|
* 获取人员入住详情
|
|
|
|
|
+ *
|
|
|
* @param we
|
|
* @param we
|
|
|
* @param periodDate
|
|
* @param periodDate
|
|
|
* @param pid
|
|
* @param pid
|
|
@@ -448,9 +299,6 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
|
|
|
waterElectricityInfo.setApplyDate(checkInDate);
|
|
waterElectricityInfo.setApplyDate(checkInDate);
|
|
|
PersonInfo applier = SHRBillUtil.getCurrPersonInfo();
|
|
PersonInfo applier = SHRBillUtil.getCurrPersonInfo();
|
|
|
waterElectricityInfo.setApplier(applier);
|
|
waterElectricityInfo.setApplier(applier);
|
|
|
- //水电单价
|
|
|
|
|
- waterElectricityInfo.setWaterprice(waterprice);
|
|
|
|
|
- waterElectricityInfo.setElectricityprice(electricityprice);
|
|
|
|
|
|
|
|
|
|
BOSUuid id = waterElectricityInfo.getId();
|
|
BOSUuid id = waterElectricityInfo.getId();
|
|
|
if (null == id) {
|
|
if (null == id) {
|
|
@@ -471,7 +319,6 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
resutMap.put("alls", alls);
|
|
resutMap.put("alls", alls);
|
|
|
resutMap.put("errs", errs);
|
|
resutMap.put("errs", errs);
|
|
|
resutMap.put("sess", sess);
|
|
resutMap.put("sess", sess);
|
|
@@ -524,7 +371,6 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
|
|
|
} catch (BOSException | EASBizException | SQLException e) {
|
|
} catch (BOSException | EASBizException | SQLException e) {
|
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
/**
|
|
/**
|
|
|
* 计算
|
|
* 计算
|
|
@@ -686,5 +532,4 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
}
|
|
}
|