| | |
| | | } |
| | | } |
| | | |
| | | if (oweFeeCallablePos.size() < 1) { |
| | | if (oweFeeCallablePos.isEmpty()) { |
| | | return; |
| | | } |
| | | |
| | |
| | | String oweUrl = ""; |
| | | OweFeeCallablePo updateOweFeeCallablePo = null; |
| | | OwnerAppUserDto ownerAppUserDto = null; |
| | | for (OweFeeCallablePo oweFeeCallablePo : oweFeeCallablePos) { |
| | | String userId = ""; |
| | | List<JSONObject> contents = null; |
| | | |
| | | if (StringUtil.isEmpty(oweFeeCallablePo.getOwnerId()) || oweFeeCallablePo.getOwnerId().startsWith("-")) { |
| | | List<OweFeeCallablePo> sendOweFeeCallablePos = null; |
| | | |
| | | //todo 按房屋发送 |
| | | for (int roomIndex = 0; roomIndex < roomIds.size(); roomIndex++) { |
| | | contents = new ArrayList<>(); |
| | | String notifyWay = MsgNotifyFactory.NOTIFY_WAY_WECHAT; |
| | | userId = ""; |
| | | sendOweFeeCallablePos = new ArrayList<>(); |
| | | for (OweFeeCallablePo oweFeeCallablePo : oweFeeCallablePos) { |
| | | if (!oweFeeCallablePo.getPayerObjId().equals(roomIds.getString(roomIndex))) { |
| | | continue; |
| | | } |
| | | |
| | | //todo 业主不存在 |
| | | if (StringUtil.isEmpty(oweFeeCallablePo.getOwnerId()) || oweFeeCallablePo.getOwnerId().startsWith("-")) { |
| | | updateOweFeeCallablePo = new OweFeeCallablePo(); |
| | | updateOweFeeCallablePo.setOfcId(oweFeeCallablePo.getOfcId()); |
| | | updateOweFeeCallablePo.setCommunityId(oweFeeCallablePo.getCommunityId()); |
| | | updateOweFeeCallablePo.setState(OweFeeCallableDto.STATE_FAIL); |
| | | updateOweFeeCallablePo.setRemark(oweFeeCallablePo.getRemark() + "-业主不存在"); |
| | | oweFeeCallableV1InnerServiceSMOImpl.updateOweFeeCallable(updateOweFeeCallablePo); |
| | | continue; |
| | | } |
| | | |
| | | |
| | | ownerAppUserDto = new OwnerAppUserDto(); |
| | | ownerAppUserDto.setMemberId(oweFeeCallablePo.getOwnerId()); |
| | | ownerAppUserDto.setCommunityId(oweFeeCallablePo.getCommunityId()); |
| | | ownerAppUserDto.setAppType(OwnerAppUserDto.APP_TYPE_WECHAT); |
| | | List<OwnerAppUserDto> ownerAppUserDtos = ownerAppUserInnerServiceSMOImpl.queryOwnerAppUsers(ownerAppUserDto); |
| | | if (ownerAppUserDtos != null && ownerAppUserDtos.size() > 0) { |
| | | userId = ownerAppUserDtos.get(0).getUserId(); |
| | | } |
| | | |
| | | oweUrl = FeeDto.PAYER_OBJ_TYPE_ROOM.equals(oweFeeCallablePo.getPayerObjType()) ? oweRoomUrl : oweCarUrl; |
| | | content = new JSONObject(); |
| | | content.put("feeTypeName", oweFeeCallablePo.getFeeName()); |
| | | content.put("payerObjName", oweFeeCallablePo.getPayerObjName()); |
| | | content.put("billAmountOwed", oweFeeCallablePo.getAmountdOwed()); |
| | | content.put("date", DateUtil.dateTimeToDate(oweFeeCallablePo.getStartTime()) + "~" + DateUtil.dateTimeToDate(oweFeeCallablePo.getEndTime())); |
| | | content.put("url", oweUrl + oweFeeCallablePo.getPayerObjId()); |
| | | |
| | | if (OweFeeCallableDto.CALLABLE_WAY_SMS.equals(oweFeeCallablePo.getCallableWay())) { |
| | | notifyWay = MsgNotifyFactory.NOTIFY_WAY_ALI; |
| | | } |
| | | contents.add(content); |
| | | sendOweFeeCallablePos.add(oweFeeCallablePo); |
| | | |
| | | } |
| | | |
| | | if (contents.isEmpty()) { |
| | | return; |
| | | } |
| | | |
| | | //todo 催缴 |
| | | ResultVo resultVo = MsgNotifyFactory.sendOweFeeMsg(data.getString("communityId"), userId, oweFeeCallablePos.get(0).getOwnerId(), contents, notifyWay); |
| | | |
| | | for (OweFeeCallablePo oweFeeCallablePo : sendOweFeeCallablePos) { |
| | | if (StringUtil.isEmpty(oweFeeCallablePo.getOwnerId()) || oweFeeCallablePo.getOwnerId().startsWith("-")) { |
| | | continue; |
| | | } |
| | | updateOweFeeCallablePo = new OweFeeCallablePo(); |
| | | updateOweFeeCallablePo.setOfcId(oweFeeCallablePo.getOfcId()); |
| | | updateOweFeeCallablePo.setCommunityId(oweFeeCallablePo.getCommunityId()); |
| | | updateOweFeeCallablePo.setState(OweFeeCallableDto.STATE_FAIL); |
| | | updateOweFeeCallablePo.setRemark(oweFeeCallablePo.getRemark() + "-业主不存在"); |
| | | if (resultVo.getCode() != ResultVo.CODE_OK) { |
| | | updateOweFeeCallablePo.setState(OweFeeCallableDto.STATE_FAIL); |
| | | updateOweFeeCallablePo.setRemark(oweFeeCallablePo.getRemark() + "-" + resultVo.getMsg()); |
| | | } else { |
| | | updateOweFeeCallablePo.setState(OweFeeCallableDto.STATE_COMPLETE); |
| | | } |
| | | oweFeeCallableV1InnerServiceSMOImpl.updateOweFeeCallable(updateOweFeeCallablePo); |
| | | continue; |
| | | } |
| | | ownerAppUserDto = new OwnerAppUserDto(); |
| | | ownerAppUserDto.setMemberId(oweFeeCallablePo.getOwnerId()); |
| | | ownerAppUserDto.setCommunityId(oweFeeCallablePo.getCommunityId()); |
| | | ownerAppUserDto.setAppType(OwnerAppUserDto.APP_TYPE_WECHAT); |
| | | List<OwnerAppUserDto> ownerAppUserDtos = ownerAppUserInnerServiceSMOImpl.queryOwnerAppUsers(ownerAppUserDto); |
| | | if (ownerAppUserDtos == null || ownerAppUserDtos.size() < 1) { |
| | | updateOweFeeCallablePo = new OweFeeCallablePo(); |
| | | updateOweFeeCallablePo.setOfcId(oweFeeCallablePo.getOfcId()); |
| | | updateOweFeeCallablePo.setCommunityId(oweFeeCallablePo.getCommunityId()); |
| | | updateOweFeeCallablePo.setState(OweFeeCallableDto.STATE_FAIL); |
| | | updateOweFeeCallablePo.setRemark(oweFeeCallablePo.getRemark() + "-业主未绑定"); |
| | | oweFeeCallableV1InnerServiceSMOImpl.updateOweFeeCallable(updateOweFeeCallablePo); |
| | | continue; |
| | | } |
| | | |
| | | oweUrl = FeeDto.PAYER_OBJ_TYPE_ROOM.equals(oweFeeCallablePo.getPayerObjType()) ? oweRoomUrl : oweCarUrl; |
| | | content = new JSONObject(); |
| | | content.put("feeTypeName", oweFeeCallablePo.getFeeName()); |
| | | content.put("payerObjName", oweFeeCallablePo.getPayerObjName()); |
| | | content.put("billAmountOwed", oweFeeCallablePo.getAmountdOwed()); |
| | | content.put("date", DateUtil.dateTimeToDate(oweFeeCallablePo.getStartTime()) + "~" + DateUtil.dateTimeToDate(oweFeeCallablePo.getEndTime())); |
| | | content.put("url", oweUrl); |
| | | ResultVo resultVo = MsgNotifyFactory.sendOweFeeMsg(data.getString("communityId"), ownerAppUserDtos.get(0).getUserId(), content); |
| | | updateOweFeeCallablePo = new OweFeeCallablePo(); |
| | | updateOweFeeCallablePo.setOfcId(oweFeeCallablePo.getOfcId()); |
| | | updateOweFeeCallablePo.setCommunityId(oweFeeCallablePo.getCommunityId()); |
| | | if (resultVo.getCode() != ResultVo.CODE_OK) { |
| | | updateOweFeeCallablePo.setState(OweFeeCallableDto.STATE_FAIL); |
| | | updateOweFeeCallablePo.setRemark(oweFeeCallablePo.getRemark() + "-" + resultVo.getMsg()); |
| | | } else { |
| | | updateOweFeeCallablePo.setState(OweFeeCallableDto.STATE_COMPLETE); |
| | | } |
| | | oweFeeCallableV1InnerServiceSMOImpl.updateOweFeeCallable(updateOweFeeCallablePo); |
| | | } |
| | | } |
| | | |
| | |
| | | OweFeeCallablePo oweFeeCallablePo = null; |
| | | |
| | | for (ReportOweFeeDto reportOweFeeDto : feeDtos) { |
| | | |
| | | // todo 校验 时间范围 |
| | | if (!hasInTime(reportOweFeeDto, data)) { |
| | | continue; |
| | | } |
| | | oweFeeCallablePo = new OweFeeCallablePo(); |
| | | |
| | | oweFeeCallablePo.setAmountdOwed(reportOweFeeDto.getAmountOwed()); |
| | |
| | | if (data.containsKey("feeId")) { |
| | | reportOweFeeDto.setFeeId(data.getString("feeId")); |
| | | } |
| | | List<String> feeIds = new ArrayList<>(); |
| | | |
| | | if (data.containsKey("feeIds")) { |
| | | JSONArray feeIdAs = data.getJSONArray("feeIds"); |
| | | for (int feeIndex = 0; feeIndex < feeIdAs.size(); feeIndex++) { |
| | | feeIds.add(feeIdAs.getString(feeIndex)); |
| | | } |
| | | if (feeIds.size() > 0) { |
| | | reportOweFeeDto.setFeeIds(feeIds.toArray(new String[feeIds.size()])); |
| | | } |
| | | } |
| | | List<String> configIdss = new ArrayList<>(); |
| | | if (data.containsKey("configIds")) { |
| | | JSONArray configIds = data.getJSONArray("configIds"); |
| | |
| | | |
| | | } |
| | | |
| | | private boolean hasInTime(ReportOweFeeDto tempFeeDto, JSONObject reqJson) { |
| | | if (!reqJson.containsKey("startTime") || !reqJson.containsKey("endTime")) { |
| | | return true; |
| | | } |
| | | |
| | | String startTime = reqJson.getString("startTime"); |
| | | String endTime = reqJson.getString("endTime"); |
| | | |
| | | if (StringUtil.isEmpty(startTime) || StringUtil.isEmpty(endTime)) { |
| | | return true; |
| | | } |
| | | if (StringUtil.isEmpty(tempFeeDto.getDeadlineTime())) { |
| | | return true; |
| | | } |
| | | if (StringUtil.isEmpty(tempFeeDto.getEndTime())) { |
| | | return true; |
| | | } |
| | | |
| | | if (DateUtil.getDateFromStringB(tempFeeDto.getEndTime()).before(DateUtil.getDateFromStringB(startTime)) && DateUtil.getDateFromStringB(tempFeeDto.getDeadlineTime()).after(DateUtil.getDateFromStringB(endTime))) { |
| | | return true; |
| | | } |
| | | |
| | | return false; |
| | | } |
| | | |
| | | |
| | | } |