|
|
@@ -46,24 +46,25 @@ import java.time.format.DateTimeFormatter;
|
|
|
import java.util.*;
|
|
|
|
|
|
/**
|
|
|
- * 水电费明细计算
|
|
|
+ * 姘寸數璐规槑缁嗚�绠�
|
|
|
* description: WaterElectricityListHandler <br>
|
|
|
* date: 2025/4/24 18:09 <br>
|
|
|
* author: lhbj <br>
|
|
|
* version: 1.0 <br>
|
|
|
+ * 鐖辫礉澹�
|
|
|
*/
|
|
|
public class WaterElectricityListHandler extends WaterElectricityBatchListHandler {
|
|
|
private static Logger logger = LoggerFactory.getLogger(WaterElectricityListHandler.class);
|
|
|
public static final String TABLENAME ="CT_WOE_WaterElectricity";
|
|
|
|
|
|
/**
|
|
|
- * 获取水电费详细Sql
|
|
|
+ * 鑾峰彇姘寸數璐硅�缁哠ql
|
|
|
*
|
|
|
* @param startPeriodDateStr
|
|
|
* @param endPeriodDateStr
|
|
|
* @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();
|
|
|
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, ");
|
|
|
@@ -85,8 +86,11 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
|
|
|
sel.append(" left join CT_WAT_WaterPowerPricing wpp on wpp.CFEndDate>='" + startPeriodDateStr + "' ");
|
|
|
sel.append(" and wpp.CFStartDate<='" + endPeriodDateStr + "' ");
|
|
|
sel.append(" left join CT_MAN_WaterPowerMeterReading wpmr on wpmr.CFDormitoryID=ops.CFDormitoryID ");
|
|
|
- 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 wpmr.CFYears<=ops.CFCheckOutDate ");
|
|
|
+// 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 <= '" + endPeriodDateStr + "' ");
|
|
|
+
|
|
|
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.CFEndDate='" + endPeriodDateStr + "' ");
|
|
|
@@ -105,169 +109,9 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
|
|
|
System.out.println("getPersonWaterElectricitySql:" + 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 ('') ");
|
|
|
- for (String id : billids) {
|
|
|
- sel.append(",'").append(id).append("'");
|
|
|
- }
|
|
|
- sel.append(")");
|
|
|
- }
|
|
|
-
|
|
|
- // 递归深度限制:10层足够覆盖日常树形(房间→楼栋→小区→...),避免异常
|
|
|
- sel.append(" OPTION (MAXRECURSION 10)");
|
|
|
-
|
|
|
- System.out.println("getPersonWaterElectricitySql:" + sel);
|
|
|
- return sel;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
|
|
|
/**
|
|
|
- * 获取水电费详细集合
|
|
|
+ * 鑾峰彇姘寸數璐硅�缁嗛泦鍚�
|
|
|
*
|
|
|
* @param ctx
|
|
|
* @param startPeriodDateStr
|
|
|
@@ -280,7 +124,7 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
|
|
|
String startPeriodDateStr, String endPeriodDateStr, Collection<String> billids)
|
|
|
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());
|
|
|
List<Map<String, Object>> list = Lists.newArrayList();
|
|
|
while (rs.next()) {
|
|
|
@@ -290,17 +134,17 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
|
|
|
String pNumber = rs.getString("pNumber");
|
|
|
String opsid = rs.getString("opsid");
|
|
|
String InService = rs.getString("InService");
|
|
|
- Date checkInDate = rs.getDate("CFCheckInDate");//入住日期
|
|
|
- Date checkOutDate = rs.getDate("CFCheckOutDate");//离宿日期
|
|
|
- String dormitoryID = rs.getString("dormitoryID");//宿舍
|
|
|
- String wppid = rs.getString("wppid");//标准id
|
|
|
- Date startDate = rs.getDate("CFStartDate");//标准开始日期
|
|
|
- Date endDate = rs.getDate("CFEndDate");//标准结束日期
|
|
|
- BigDecimal waterprice = rs.getBigDecimal("CFWaterprice");//水费单价
|
|
|
+ Date checkInDate = rs.getDate("CFCheckInDate");//鍏ヤ綇鏃ユ湡
|
|
|
+ Date checkOutDate = rs.getDate("CFCheckOutDate");//绂诲�鏃ユ湡
|
|
|
+ String dormitoryID = rs.getString("dormitoryID");//瀹胯垗
|
|
|
+ String wppid = rs.getString("wppid");//鏍囧噯id
|
|
|
+ Date startDate = rs.getDate("CFStartDate");//鏍囧噯寮€濮嬫棩鏈�
|
|
|
+ Date endDate = rs.getDate("CFEndDate");//鏍囧噯缁撴潫鏃ユ湡
|
|
|
+ BigDecimal waterprice = rs.getBigDecimal("CFWaterprice");//姘磋垂鍗曚环
|
|
|
if (null==waterprice){
|
|
|
- throw new ShrWebBizException("没有找到水费电费标准单据,请在水电定价标准中维护!");
|
|
|
+ throw new ShrWebBizException("娌℃湁鎵惧埌姘磋垂鐢佃垂鏍囧噯鍗曟嵁锛岃�鍦ㄦ按鐢靛畾浠锋爣鍑嗕腑缁存姢锛�");
|
|
|
}
|
|
|
- BigDecimal electricityprice = rs.getBigDecimal("CFElectricityprice");//电费单价
|
|
|
+ BigDecimal electricityprice = rs.getBigDecimal("CFElectricityprice");//鐢佃垂鍗曚环
|
|
|
String wpmrid = rs.getString("wpmrid");
|
|
|
Date wpmrStartDate = rs.getDate("wpmrStartDate");
|
|
|
Date wpmrEndDate = rs.getDate("wpmrEndDate");
|
|
|
@@ -340,7 +184,7 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
|
|
|
|
|
|
|
|
|
/**
|
|
|
- * 获取人员入住详情
|
|
|
+ * 鑾峰彇浜哄憳鍏ヤ綇璇︽儏
|
|
|
*
|
|
|
* @param we
|
|
|
* @param periodDate
|
|
|
@@ -394,14 +238,14 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
|
|
|
String pNumber = (String) map.get("pNumber");
|
|
|
String opsid = (String) map.get("opsid");
|
|
|
String InService = (String) map.get("InService");
|
|
|
- Date checkInDate = (Date) map.get("checkInDate");//入住日期
|
|
|
- Date checkOutDate = (Date) map.get("checkOutDate");//离宿日期
|
|
|
- String dormitoryID = (String) map.get("dormitoryID");//宿舍
|
|
|
- String wppid = (String) map.get("wppid");//标准id
|
|
|
- Date startDate = (Date) map.get("startDate");//标准开始日期
|
|
|
- Date endDate = (Date) map.get("endDate");//标准结束日期
|
|
|
- BigDecimal waterprice = (BigDecimal) map.get("waterprice");//水费单价
|
|
|
- BigDecimal electricityprice = (BigDecimal) map.get("electricityprice");//电费单价
|
|
|
+ Date checkInDate = (Date) map.get("checkInDate");//鍏ヤ綇鏃ユ湡
|
|
|
+ Date checkOutDate = (Date) map.get("checkOutDate");//绂诲�鏃ユ湡
|
|
|
+ String dormitoryID = (String) map.get("dormitoryID");//瀹胯垗
|
|
|
+ String wppid = (String) map.get("wppid");//鏍囧噯id
|
|
|
+ Date startDate = (Date) map.get("startDate");//鏍囧噯寮€濮嬫棩鏈�
|
|
|
+ Date endDate = (Date) map.get("endDate");//鏍囧噯缁撴潫鏃ユ湡
|
|
|
+ BigDecimal waterprice = (BigDecimal) map.get("waterprice");//姘磋垂鍗曚环
|
|
|
+ BigDecimal electricityprice = (BigDecimal) map.get("electricityprice");//鐢佃垂鍗曚环
|
|
|
String wpmrid = (String) map.get("wpmrid");
|
|
|
Date wpmrStartDate = (Date) map.get("wpmrStartDate");
|
|
|
Date wpmrEndDate = (Date) map.get("wpmrEndDate");
|
|
|
@@ -416,7 +260,7 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
|
|
|
waterElectricityInfo = new WaterElectricityInfo();
|
|
|
}
|
|
|
waterElectricityInfo.setSourceFunction(opsid);
|
|
|
- //处理当月入住天数
|
|
|
+ //澶勭悊褰撴湀鍏ヤ綇澶╂暟
|
|
|
Map<String, Object> occupants = occupantsMap.get(dormitoryID);
|
|
|
HROrgUnitInfo hrOrgUnitInfo = new HROrgUnitInfo();
|
|
|
hrOrgUnitInfo.setId(BOSUuid.read("00000000-0000-0000-0000-000000000000CCE7AED4"));
|
|
|
@@ -445,11 +289,11 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
|
|
|
positionInfo.setId(BOSUuid.read(primaryPositionID));
|
|
|
waterElectricityInfo.setPosition(positionInfo);
|
|
|
Instant instant1 = startPeriodDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant();
|
|
|
- // 获取时间戳(毫秒)
|
|
|
+ // 鑾峰彇鏃堕棿鎴筹紙姣��锛�
|
|
|
long timestamp1 = instant1.toEpochMilli();
|
|
|
waterElectricityInfo.setStartDate(new Date(timestamp1));
|
|
|
Instant instant2 = endPeriodDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant();
|
|
|
- // 获取时间戳(毫秒)
|
|
|
+ // 鑾峰彇鏃堕棿鎴筹紙姣��锛�
|
|
|
long timestamp2 = instant2.toEpochMilli();
|
|
|
waterElectricityInfo.setEndDate(new Date(timestamp2));
|
|
|
waterElectricityInfo.setApplyDate(checkInDate);
|
|
|
@@ -482,7 +326,7 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 生成水电费明细
|
|
|
+ * 鐢熸垚姘寸數璐规槑缁�
|
|
|
*
|
|
|
* @param request
|
|
|
* @param response
|
|
|
@@ -501,7 +345,7 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
|
|
|
LocalDate startPeriodDate = LocalDate.parse(periodDate + "-01", DateTimeFormatter.ISO_LOCAL_DATE);
|
|
|
Month month = startPeriodDate.getMonth();
|
|
|
LocalDate endPeriodDate = LocalDate.of(startPeriodDate.getYear(), month, month.length(startPeriodDate.isLeapYear()));
|
|
|
- //获取开始时间,结束时间
|
|
|
+ //鑾峰彇寮€濮嬫椂闂达紝缁撴潫鏃堕棿
|
|
|
String startPeriodDateStr = startPeriodDate.format(DateTimeFormatter.ISO_LOCAL_DATE);
|
|
|
String endPeriodDateStr = endPeriodDate.format(DateTimeFormatter.ISO_LOCAL_DATE);
|
|
|
Map<String, Object> param = Maps.newHashMap();
|
|
|
@@ -511,14 +355,14 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
|
|
|
param.put("startPeriodDateStr", startPeriodDateStr);
|
|
|
param.put("endPeriodDateStr", endPeriodDateStr);
|
|
|
|
|
|
- //获取水电费详细集合
|
|
|
+ //鑾峰彇姘寸數璐硅�缁嗛泦鍚�
|
|
|
List<Map<String, Object>> mapList = this.getPersonWaterElectricityList(ctx, startPeriodDateStr, endPeriodDateStr, billids);
|
|
|
Set<String> dormitorySet = Sets.newHashSet();
|
|
|
for (Map<String, Object> map : mapList) {
|
|
|
- String dormitoryID = (String) map.get("dormitoryID");//宿舍
|
|
|
+ String dormitoryID = (String) map.get("dormitoryID");//瀹胯垗
|
|
|
dormitorySet.add(dormitoryID);
|
|
|
}
|
|
|
- //获取当前宿舍的总入住天数
|
|
|
+ //鑾峰彇褰撳墠瀹胯垗鐨勬€诲叆浣忓ぉ鏁�
|
|
|
Map<String, Map<String, Object>> occupantsMap = this.getPersonOccupantsList(ctx, dormitorySet, startPeriodDate, endPeriodDate);
|
|
|
Map<String, Set<String>> result = this.createUpdateWE(ctx, mapList, param, occupantsMap, "create");
|
|
|
this.returnMessage(request, batchMessageTipsHeader, result,billids);
|
|
|
@@ -529,7 +373,7 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
|
|
|
}
|
|
|
}
|
|
|
/**
|
|
|
- * 计算
|
|
|
+ * 璁$畻
|
|
|
{"startDate":
|
|
|
{"values":{"date":"2025-04-01"},"isSaveToScheme":true,"dataType":"Date","queryDateType":""},
|
|
|
"applyDate":
|
|
|
@@ -563,7 +407,7 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
|
|
|
periodDate = periodDate.substring(0, 7);
|
|
|
Month month = startPeriodDate.getMonth();
|
|
|
LocalDate endPeriodDate = LocalDate.of(startPeriodDate.getYear(), month, month.length(startPeriodDate.isLeapYear()));
|
|
|
- //获取开始时间,结束时间
|
|
|
+ //鑾峰彇寮€濮嬫椂闂达紝缁撴潫鏃堕棿
|
|
|
String startPeriodDateStr = startPeriodDate.format(DateTimeFormatter.ISO_LOCAL_DATE);
|
|
|
String endPeriodDateStr = endPeriodDate.format(DateTimeFormatter.ISO_LOCAL_DATE);
|
|
|
Map<String, Object> param = Maps.newHashMap();
|
|
|
@@ -573,14 +417,14 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
|
|
|
param.put("startPeriodDateStr", startPeriodDateStr);
|
|
|
param.put("endPeriodDateStr", endPeriodDateStr);
|
|
|
|
|
|
- //获取水电费详细集合
|
|
|
+ //鑾峰彇姘寸數璐硅�缁嗛泦鍚�
|
|
|
List<Map<String, Object>> mapList = this.getPersonWaterElectricityList(ctx, startPeriodDateStr, endPeriodDateStr, billids);
|
|
|
Set<String> dormitorySet = Sets.newHashSet();
|
|
|
for (Map<String, Object> map : mapList) {
|
|
|
- String dormitoryID = (String) map.get("dormitoryID");//宿舍
|
|
|
+ String dormitoryID = (String) map.get("dormitoryID");//瀹胯垗
|
|
|
dormitorySet.add(dormitoryID);
|
|
|
}
|
|
|
- //获取当前宿舍的总入住天数
|
|
|
+ //鑾峰彇褰撳墠瀹胯垗鐨勬€诲叆浣忓ぉ鏁�
|
|
|
Map<String, Map<String, Object>> occupantsMap = this.getPersonOccupantsList(ctx, dormitorySet, startPeriodDate, endPeriodDate);
|
|
|
Map<String, Set<String>> result = this.createUpdateWE(ctx, mapList, param, occupantsMap, "update");
|
|
|
this.returnMessage(request, batchMessageTipsHeader, result, billids);
|
|
|
@@ -602,7 +446,7 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
|
|
|
return TABLENAME;
|
|
|
}
|
|
|
/**
|
|
|
- * 锁定
|
|
|
+ * 閿佸畾
|
|
|
*
|
|
|
* @param request
|
|
|
* @param response
|
|
|
@@ -630,7 +474,7 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
|
|
|
return billId;
|
|
|
}
|
|
|
/**
|
|
|
- * 解锁
|
|
|
+ * 瑙i攣
|
|
|
*
|
|
|
* @param request
|
|
|
* @param response
|
|
|
@@ -667,11 +511,11 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
|
|
|
state = conn.createStatement();
|
|
|
if ("enable".equals(math)) {
|
|
|
|
|
|
- //薪酬锁定
|
|
|
+ //钖�叕閿佸畾
|
|
|
state.execute("update "+TABLENAME+" set FBillState='2' where fid='" + uuid + "' and FBillState < 2 ");
|
|
|
|
|
|
} else if ("disable".equals(math)) {
|
|
|
- //薪酬解锁
|
|
|
+ //钖�叕瑙i攣
|
|
|
state.execute("update "+TABLENAME+" set FBillState='0' where fid='" + uuid + "' and FBillState < 3 ");
|
|
|
}
|
|
|
} catch (SQLException var32) {
|
|
|
@@ -688,5 +532,4 @@ public class WaterElectricityListHandler extends WaterElectricityBatchListHandle
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
}
|