|
|
@@ -9,6 +9,7 @@ import com.happy.Until.Func;
|
|
|
import com.happy.dao.HouseNumberDao;
|
|
|
import com.happy.dao.HouseNumberStatusDao;
|
|
|
import com.happy.dao.HousePriceDao;
|
|
|
+import com.happy.dto.HouseNumberDto;
|
|
|
import com.happy.dto.HouseNumberStatusDto;
|
|
|
import com.happy.dto.HousePriceDto;
|
|
|
import com.happy.service.HouseNumberStatusService;
|
|
|
@@ -48,9 +49,11 @@ public class HouseNumberStatusImplService implements HouseNumberStatusService {
|
|
|
Integer showType = houseNumberStatusDto.getShowType();
|
|
|
if (StringUtils.isBlank(managerId) || showType == null) return null;
|
|
|
List<House> houseList = housePriceService.queryHouseListByManagerId(houseNumberStatusDto.getManagerId());
|
|
|
- if (houseList.isEmpty()) return null;
|
|
|
- List<HouseNumber> houseNumberList = houseNumberDao.queryListByHouseIdList(houseList.stream().map(House::getId).collect(Collectors.toList()));
|
|
|
- if (houseNumberList.isEmpty()) return null;
|
|
|
+ if (houseList == null || houseList.isEmpty()) return null;
|
|
|
+ HouseNumberDto houseNumberDto = new HouseNumberDto();
|
|
|
+ houseNumberDto.setHouseIdList(houseList.stream().map(House::getId).collect(Collectors.toList()));
|
|
|
+ List<HouseNumberDto> houseNumberList = houseNumberDao.queryListOne(houseNumberDto);
|
|
|
+ if (houseNumberList == null || houseNumberList.isEmpty()) return null;
|
|
|
|
|
|
String setDate = houseNumberStatusDto.getSetDate();
|
|
|
Date startDate = DateUtil.parseDateOnly(setDate);
|
|
|
@@ -58,7 +61,7 @@ public class HouseNumberStatusImplService implements HouseNumberStatusService {
|
|
|
String setDateWithEndDate = String.format("%s,%s", setDate, DateUtil.parseDateToStr(endDate, DateUtil.Time_Formatter_Day));
|
|
|
|
|
|
//region 房间状态信息
|
|
|
- houseNumberStatusDto.setStatuses(Arrays.asList(2, 3, 4, 5, 6));
|
|
|
+ houseNumberStatusDto.setStatuses(Arrays.asList(2, 5, 6));
|
|
|
List<String> houseNumberIdList = houseNumberList.stream().map(HouseNumber::getId).collect(Collectors.toList());
|
|
|
houseNumberStatusDto.setHouseNumberIds(houseNumberIdList);
|
|
|
List<HouseNumberStatusDto> houseNumberStatusDtoList;
|
|
|
@@ -74,29 +77,22 @@ public class HouseNumberStatusImplService implements HouseNumberStatusService {
|
|
|
}
|
|
|
//endregion
|
|
|
|
|
|
- boolean existHouseNumberStatus = !houseNumberStatusDtoList.isEmpty();
|
|
|
-
|
|
|
- //region 订单信息
|
|
|
- Map<String, HouseNumberStatusDto> orderInfoMap;
|
|
|
- if (existHouseNumberStatus) {
|
|
|
+ if (!houseNumberStatusDtoList.isEmpty()) {
|
|
|
+ //region 预定/入住的订单信息
|
|
|
+ Map<String, HouseNumberStatusDto> orderInfoMap;
|
|
|
List<String> bookingId = houseNumberStatusDtoList.stream()
|
|
|
.filter(item -> item.getStatus() == 5 || item.getStatus() == 6)
|
|
|
.map(HouseNumberStatusDto::getBookingId).collect(Collectors.toList());
|
|
|
-
|
|
|
if (bookingId.isEmpty()) {
|
|
|
orderInfoMap = Collections.emptyMap();
|
|
|
} else {
|
|
|
orderInfoMap = houseNumberStatusDao.queryOrderSomeColumnListByIds(bookingId)
|
|
|
.stream().collect(Collectors.toMap(HouseNumberStatusDto::getBookingId, item -> item, (bookingIdOne, bookingIdTow) -> bookingIdOne));
|
|
|
}
|
|
|
- } else {
|
|
|
- orderInfoMap = Collections.emptyMap();
|
|
|
- }
|
|
|
- //endregion
|
|
|
+ //endregion
|
|
|
|
|
|
- if (existHouseNumberStatus) {
|
|
|
houseNumberList.forEach(houseNumber -> {
|
|
|
- ArrayList<HouseNumberStatusDto> houseNumberStatuses = new ArrayList<>();
|
|
|
+ List<HouseNumberStatusDto> houseNumberStatuses = new ArrayList<>();
|
|
|
for (HouseNumberStatusDto numberStatusDto : houseNumberStatusDtoList) {
|
|
|
// 填充预定/入住的一些订单信息
|
|
|
if (numberStatusDto.getStatus() == 5 || numberStatusDto.getStatus() == 6) {
|
|
|
@@ -111,7 +107,7 @@ public class HouseNumberStatusImplService implements HouseNumberStatusService {
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
-
|
|
|
+ JSONObject result = new JSONObject();
|
|
|
if (houseNumberStatusDto.getShowType() == 1) {
|
|
|
List<String> dateListBetween = DateUtil.getDateStrListBetween(startDate, endDate);
|
|
|
|
|
|
@@ -123,22 +119,22 @@ public class HouseNumberStatusImplService implements HouseNumberStatusService {
|
|
|
List<HousePriceDto> housePriceDtoList = housePriceDao.queryListTwo(housePriceDto);
|
|
|
//endregion
|
|
|
List<JSONObject> datas = new ArrayList<>();
|
|
|
- JSONObject result = new JSONObject(new LinkedHashMap<>());
|
|
|
houseList.forEach(house -> houseNumberList.forEach(houseNumber -> {
|
|
|
if (houseNumber.getHouseId().equals(house.getId())) {
|
|
|
JSONObject houseJsonObject = new JSONObject(new LinkedHashMap<>());
|
|
|
houseJsonObject.put("id", house.getId());
|
|
|
houseJsonObject.put("houseName", house.gethName());
|
|
|
String numberName = houseNumber.getNumberName();
|
|
|
+ houseJsonObject.put("numberName", numberName);
|
|
|
+ houseJsonObject.put("numberStatus", houseNumber.getHouseStatus());
|
|
|
dateListBetween.forEach(date -> {
|
|
|
- houseJsonObject.put("numberName", numberName);
|
|
|
JSONObject dateJsonObject = new JSONObject();
|
|
|
dateJsonObject.put("numberId", houseNumber.getId());
|
|
|
dateJsonObject.put("houseName", house.gethName());
|
|
|
dateJsonObject.put("numberName", numberName);
|
|
|
dateJsonObject.put("housePrice", getPrice(DateUtil.parseDateOnly(date), house, housePriceDtoList));
|
|
|
List<HouseNumberStatusDto> houseNumberStatuses = houseNumber.getHouseNumberStatuses();
|
|
|
- if (houseNumberStatuses != null && !houseNumberStatuses.isEmpty()){
|
|
|
+ if (houseNumberStatuses != null && !houseNumberStatuses.isEmpty()) {
|
|
|
houseNumberStatuses.forEach(houseNumberStatus -> {
|
|
|
if (date.equals(houseNumberStatus.getSetDate())) {
|
|
|
dateJsonObject.put("closeType", houseNumberStatus.getCloseType());
|
|
|
@@ -161,21 +157,20 @@ public class HouseNumberStatusImplService implements HouseNumberStatusService {
|
|
|
datas.add(houseJsonObject);
|
|
|
}
|
|
|
}));
|
|
|
- ArrayList<JSONObject> dataTimes = new ArrayList();
|
|
|
- dateListBetween.forEach(date->{
|
|
|
- JSONObject dataTime = new JSONObject();//
|
|
|
- dataTime.put("dateStr",date);
|
|
|
- dataTime.put("roomSum",getSum(date,houseNumberList));
|
|
|
+ ArrayList<JSONObject> dataTimes = new ArrayList<>();
|
|
|
+ dateListBetween.forEach(date -> {
|
|
|
+ JSONObject dataTime = new JSONObject();
|
|
|
+ dataTime.put("dateStr", date);
|
|
|
+ dataTime.put("roomSum", getSum(date, houseNumberList));
|
|
|
dataTimes.add(dataTime);
|
|
|
});
|
|
|
|
|
|
result.put("dateTimes", dataTimes);
|
|
|
- result.put("datas",datas);
|
|
|
+ result.put("datas", datas);
|
|
|
return result;
|
|
|
}
|
|
|
if (houseNumberStatusDto.getShowType() == 2) {
|
|
|
- JSONObject result = new JSONObject(new LinkedHashMap<>());
|
|
|
- result.put("data",buildResultOne(houseList, houseNumberList));
|
|
|
+ result.put("data", buildResultOne(houseList, houseNumberList));
|
|
|
return result;
|
|
|
}
|
|
|
return null;
|
|
|
@@ -186,29 +181,12 @@ public class HouseNumberStatusImplService implements HouseNumberStatusService {
|
|
|
String managerId = houseNumberStatusDto.getManagerId();
|
|
|
if (StringUtils.isBlank(managerId)) return Collections.emptyList();
|
|
|
List<House> houseList = housePriceService.queryHouseListByManagerId(houseNumberStatusDto.getManagerId());
|
|
|
- if (houseList.isEmpty()) return houseList;
|
|
|
- List<HouseNumber> houseNumberList = houseNumberDao.queryListByHouseIdList(houseList.stream().map(House::getId).collect(Collectors.toList()));
|
|
|
- if (houseNumberList.isEmpty()) return houseList;
|
|
|
-
|
|
|
- // 需求文档只注明:批量置净时展示的是脏房(status=3)
|
|
|
- if (houseNumberStatusDto.getStatus() != null && houseNumberStatusDto.getStatus() == 3) {
|
|
|
- //region 此代码块为移除不是脏房的房间
|
|
|
- List<String> houseNumberIdList = houseNumberList.stream().map(HouseNumber::getId).collect(Collectors.toList());
|
|
|
-
|
|
|
- //region 脏房房间id集合
|
|
|
- HouseNumberStatusDto paramsOne = new HouseNumberStatusDto();
|
|
|
- paramsOne.setHouseNumberIds(houseNumberIdList);
|
|
|
- paramsOne.setStatuses(Collections.singletonList(3));
|
|
|
- List<String> numberIdList = houseNumberStatusDao.queryList(paramsOne).stream()
|
|
|
- .map(HouseNumberStatusDto::getNumberId)
|
|
|
- .collect(Collectors.toList());
|
|
|
- //endregion
|
|
|
-
|
|
|
- if (numberIdList.isEmpty()) return houseList;
|
|
|
- Set<String> numberIdSet = new HashSet<>(numberIdList);
|
|
|
- houseNumberList = houseNumberList.stream().filter(houseNumber -> numberIdSet.contains(houseNumber.getId())).collect(Collectors.toList());
|
|
|
- //endregion
|
|
|
- }
|
|
|
+ if (houseList == null || houseList.isEmpty()) return houseList;
|
|
|
+ HouseNumberDto houseNumberDto = new HouseNumberDto();
|
|
|
+ houseNumberDto.setHouseIdList(houseList.stream().map(House::getId).collect(Collectors.toList()));
|
|
|
+ houseNumberDto.setHouseStatus(houseNumberStatusDto.getStatus());
|
|
|
+ List<HouseNumberDto> houseNumberList = houseNumberDao.queryListOne(houseNumberDto);
|
|
|
+ if (houseNumberList == null || houseNumberList.isEmpty()) return houseList;
|
|
|
return buildResultOne(houseList, houseNumberList);
|
|
|
}
|
|
|
|
|
|
@@ -217,44 +195,32 @@ public class HouseNumberStatusImplService implements HouseNumberStatusService {
|
|
|
public void modifyStatusBatch(HouseNumberStatusDto houseNumberStatusDto) {
|
|
|
Integer status = houseNumberStatusDto.getStatus();
|
|
|
String createId = houseNumberStatusDto.getCreateId();
|
|
|
- boolean isStatusEqualsThree = status == 3;
|
|
|
- boolean isStatusEqualsFour = status == 4;
|
|
|
- List<String> dateStrListBetween;
|
|
|
- if (isStatusEqualsFour) {
|
|
|
- String[] setDateStr = houseNumberStatusDto.getSetDate().split(",");
|
|
|
- dateStrListBetween = DateUtil.getDateStrListBetween(DateUtil.parseDateOnly(setDateStr[0]), DateUtil.parseDateOnly(setDateStr[1]));
|
|
|
- } else {
|
|
|
- dateStrListBetween = Collections.emptyList();
|
|
|
- }
|
|
|
- String currentDateStr = DateUtil.getFormatDate(DateUtil.Time_Formatter_Day);
|
|
|
Date dataTime = DateUtil.formateDate(DateUtil.getCurrentDate(), DateUtil.Time_Formatter_Second);
|
|
|
- List<String> houseNumberIds = houseNumberStatusDto.getHouseNumberIds();
|
|
|
- List<HouseNumberStatus> houseNumberStatusList = new ArrayList<>();
|
|
|
- if (isStatusEqualsThree || isStatusEqualsFour) {
|
|
|
+ if (status == 2) {
|
|
|
+ // 关房
|
|
|
+ String[] setDateStr = houseNumberStatusDto.getSetDate().split(",");
|
|
|
+ List<String> dateStrListBetween = DateUtil.getDateStrListBetween(DateUtil.parseDateOnly(setDateStr[0]), DateUtil.parseDateOnly(setDateStr[1]));
|
|
|
+ List<String> houseNumberIds = houseNumberStatusDto.getHouseNumberIds();
|
|
|
+ List<HouseNumberStatus> houseNumberStatusList = new ArrayList<>();
|
|
|
houseNumberIds.forEach(houseNumberId -> {
|
|
|
HouseNumberStatus houseNumberStatus = new HouseNumberStatus();
|
|
|
houseNumberStatus.setNumberId(houseNumberId);
|
|
|
houseNumberStatus.setStatus(status);
|
|
|
houseNumberStatus.setCreateId(createId);
|
|
|
houseNumberStatus.setCreateDate(dataTime);
|
|
|
- if (isStatusEqualsThree) {
|
|
|
- houseNumberStatus.setId(Func.newGuid());
|
|
|
- houseNumberStatus.setSetDate(currentDateStr);
|
|
|
- houseNumberStatusList.add(houseNumberStatus);
|
|
|
- } else {
|
|
|
- dateStrListBetween.forEach(dateStr -> {
|
|
|
- HouseNumberStatus houseNumberStatusNew = new HouseNumberStatus();
|
|
|
- BeanUtils.copyProperties(houseNumberStatus, houseNumberStatusNew);
|
|
|
- houseNumberStatusNew.setId(Func.newGuid());
|
|
|
- houseNumberStatusNew.setCloseType(houseNumberStatusDto.getCloseType());
|
|
|
- houseNumberStatusNew.setSetDate(dateStr);
|
|
|
- houseNumberStatusNew.setRemark(houseNumberStatusDto.getRemark());
|
|
|
- houseNumberStatusList.add(houseNumberStatusNew);
|
|
|
- });
|
|
|
- }
|
|
|
+ dateStrListBetween.forEach(dateStr -> {
|
|
|
+ HouseNumberStatus houseNumberStatusNew = new HouseNumberStatus();
|
|
|
+ BeanUtils.copyProperties(houseNumberStatus, houseNumberStatusNew);
|
|
|
+ houseNumberStatusNew.setId(Func.newGuid());
|
|
|
+ houseNumberStatusNew.setCloseType(houseNumberStatusDto.getCloseType());
|
|
|
+ houseNumberStatusNew.setSetDate(dateStr);
|
|
|
+ houseNumberStatusNew.setRemark(houseNumberStatusDto.getRemark());
|
|
|
+ houseNumberStatusList.add(houseNumberStatusNew);
|
|
|
+ });
|
|
|
});
|
|
|
houseNumberStatusDao.saveBatch(houseNumberStatusList);
|
|
|
- } else {
|
|
|
+ } else if (status == 0) {
|
|
|
+ // 开房
|
|
|
houseNumberStatusDto.setModifyDate(dataTime);
|
|
|
houseNumberStatusDao.updateStatus(houseNumberStatusDto);
|
|
|
}
|
|
|
@@ -265,28 +231,28 @@ public class HouseNumberStatusImplService implements HouseNumberStatusService {
|
|
|
public void modifyStatus(HouseNumberStatusDto houseNumberStatusDto) {
|
|
|
Integer status = houseNumberStatusDto.getStatus();
|
|
|
String createId = houseNumberStatusDto.getCreateId();
|
|
|
- boolean isStatusEqualsThree = status == 3;
|
|
|
- boolean isStatusEqualsFour = status == 4;
|
|
|
Date dataTime = DateUtil.formateDate(DateUtil.getCurrentDate(), DateUtil.Time_Formatter_Second);
|
|
|
- if (isStatusEqualsThree || isStatusEqualsFour) {
|
|
|
+ if (status == 2) {
|
|
|
+ // 关房
|
|
|
HouseNumberStatus houseNumberStatus = new HouseNumberStatus();
|
|
|
BeanUtils.copyProperties(houseNumberStatusDto, houseNumberStatus);
|
|
|
houseNumberStatus.setId(Func.newGuid());
|
|
|
houseNumberStatus.setCreateDate(dataTime);
|
|
|
houseNumberStatus.setCreateId(createId);
|
|
|
houseNumberStatusDao.saveBatch(Collections.singletonList(houseNumberStatus));
|
|
|
- } else {
|
|
|
+ } else if (status == 0) {
|
|
|
+ // 开房
|
|
|
houseNumberStatusDto.setModifyDate(dataTime);
|
|
|
houseNumberStatusDao.updateStatus(houseNumberStatusDto);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private List<JSONObject> buildResultOne(List<House> houseList, List<HouseNumber> houseNumberList) {
|
|
|
+ private List<JSONObject> buildResultOne(List<House> houseList, List<HouseNumberDto> houseNumberList) {
|
|
|
List<JSONObject> result = new ArrayList<>();
|
|
|
Map<String, List<HouseNumber>> houseNumberMap = houseNumberList.stream().collect(Collectors.groupingBy(HouseNumber::getHouseId));
|
|
|
houseList.forEach(house -> {
|
|
|
JSONObject houseJosoObj = (JSONObject) JSONObject.toJSON(house);
|
|
|
- houseJosoObj.put("HouseNumberList", houseNumberMap.getOrDefault(house.getId(), Collections.emptyList()));
|
|
|
+ houseJosoObj.put("houseNumberList", houseNumberMap.getOrDefault(house.getId(), Collections.emptyList()));
|
|
|
result.add(houseJosoObj);
|
|
|
});
|
|
|
return result;
|
|
|
@@ -316,7 +282,7 @@ public class HouseNumberStatusImplService implements HouseNumberStatusService {
|
|
|
*/
|
|
|
private Double getPrice(Date dateIn, House house, List<HousePriceDto> housePriceDtoList) {
|
|
|
Double price = house.getPrice();
|
|
|
- if (housePriceDtoList.isEmpty()) return price;
|
|
|
+ if (housePriceDtoList == null || housePriceDtoList.isEmpty()) return price;
|
|
|
for (HousePriceDto priceDto : housePriceDtoList) {
|
|
|
String[] date = priceDto.getSetDate().split(",");
|
|
|
Date startDate = DateUtil.parseDateOnly(date[0]);
|
|
|
@@ -336,10 +302,10 @@ public class HouseNumberStatusImplService implements HouseNumberStatusService {
|
|
|
*
|
|
|
* @return 当天剩余房间数量
|
|
|
*/
|
|
|
- private int getSum(String dateIn, List<HouseNumber> houseNumberList) {
|
|
|
+ private int getSum(String dateIn, List<HouseNumberDto> houseNumberList) {
|
|
|
int total = houseNumberList.size();
|
|
|
int used = 0;
|
|
|
- for (HouseNumber houseNumber : houseNumberList) {
|
|
|
+ for (HouseNumberDto houseNumber : houseNumberList) {
|
|
|
List<HouseNumberStatusDto> houseNumberStatuses = houseNumber.getHouseNumberStatuses();
|
|
|
if (houseNumberStatuses != null && !houseNumberStatuses.isEmpty()) {
|
|
|
boolean flag = houseNumberStatuses.stream().anyMatch(item -> dateIn.equals(item.getSetDate()));
|