From 54e7f06671f70cee10f82576dbe412a14a957084 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期四, 12 五月 2022 17:25:08 +0800
Subject: [PATCH] 完成巡检 通知员工功能
---
service-job/src/main/java/com/java110/job/task/wechat/FeeCollectionPushMessageTemplate.java | 196 +++++++++++++++++++++++++++++++------------------
1 files changed, 124 insertions(+), 72 deletions(-)
diff --git a/service-job/src/main/java/com/java110/job/task/wechat/FeeCollectionPushMessageTemplate.java b/service-job/src/main/java/com/java110/job/task/wechat/FeeCollectionPushMessageTemplate.java
index 38e6c9e..12dc71f 100644
--- a/service-job/src/main/java/com/java110/job/task/wechat/FeeCollectionPushMessageTemplate.java
+++ b/service-job/src/main/java/com/java110/job/task/wechat/FeeCollectionPushMessageTemplate.java
@@ -32,22 +32,25 @@
import com.java110.intf.user.IOwnerInnerServiceSMO;
import com.java110.job.quartz.TaskSystemQuartz;
import com.java110.po.feeCollectionDetail.FeeCollectionDetailPo;
+import com.java110.po.feeCollectionOrder.FeeCollectionOrderPo;
import com.java110.po.logSystemError.LogSystemErrorPo;
import com.java110.service.smo.ISaveSystemErrorSMO;
import com.java110.utils.cache.MappingCache;
import com.java110.utils.constant.WechatConstant;
+import com.java110.utils.util.BeanConvertUtil;
import com.java110.utils.util.DateUtil;
import com.java110.utils.util.ExceptionUtil;
import com.java110.utils.util.StringUtil;
import com.java110.vo.ResultVo;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import com.java110.core.log.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import java.math.BigDecimal;
+import java.text.DecimalFormat;
import java.text.ParseException;
import java.util.*;
@@ -135,16 +138,19 @@
ReportOweFeeDto reportOweFeeDto = new ReportOweFeeDto();
reportOweFeeDto.setCommunityId(communityDto.getCommunityId());
reportOweFeeDto.setHasOweFee("Y");
- long oweCount = reportOweFeeInnerServiceSMOImpl.queryReportOweFeesCount(reportOweFeeDto);
+ int oweCount = reportOweFeeInnerServiceSMOImpl.queryReportOweFeesCount(reportOweFeeDto);
if (oweCount == 0) {
return;
}
- double maxPage = Math.ceil(oweCount / DEFAULT_FEE_COUNT);
+ int maxPage = (int) Math.ceil(oweCount * 1.0 / DEFAULT_FEE_COUNT);
- for (int roomIndex = 0; roomIndex < maxPage; roomIndex++) {
+ for (int roomIndex = 1; roomIndex <= maxPage; roomIndex++) {
try {
- doReportOweFeePushMessage(roomIndex * DEFAULT_FEE_COUNT, (roomIndex + 1) * DEFAULT_FEE_COUNT, communityDto, feeCollectionOrderDtos.get(0));
+ doReportOweFeePushMessage(roomIndex, DEFAULT_FEE_COUNT, communityDto, feeCollectionOrderDtos.get(0));
+ FeeCollectionOrderPo feeCollectionOrderPo = BeanConvertUtil.covertBean(feeCollectionOrderDtos.get(0), FeeCollectionOrderPo.class);
+ feeCollectionOrderPo.setState("F");
+ feeCollectionOrderInnerServiceSMOImpl.updateFeeCollectionOrder(feeCollectionOrderPo);
} catch (Exception e) {
LogSystemErrorPo logSystemErrorPo = new LogSystemErrorPo();
logSystemErrorPo.setErrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_errId));
@@ -154,6 +160,7 @@
logger.error("娆犺垂鎺ㄩ�佸け璐�" + communityDto.getCommunityId(), e);
}
}
+
}
private void doReportOweFeePushMessage(int page, int row, CommunityDto communityDto, FeeCollectionOrderDto feeCollectionOrderDto) {
@@ -164,8 +171,12 @@
reportOweFeeDto.setRow(row);
List<ReportOweFeeDto> reportOweFeeDtos = reportOweFeeInnerServiceSMOImpl.queryReportOweFees(reportOweFeeDto);
refreshReportOwe(reportOweFeeDtos);
+ if (reportOweFeeDtos.size() > 0) {
+ pushMessage(reportOweFeeDtos, feeCollectionOrderDto);
+ } else {
+ logger.error("褰撳墠娌℃湁娆犺垂淇℃伅" + communityDto.getCommunityId());
+ }
- pushMessage(reportOweFeeDtos, feeCollectionOrderDto);
}
private void pushMessage(List<ReportOweFeeDto> reportOweFeeDtos, FeeCollectionOrderDto feeCollectionOrderDto) {
@@ -194,35 +205,37 @@
ResultVo resultVo = null;
switch (feeCollectionOrderDto.getCollectionWay()) {
case FeeCollectionOrderDto.COLLECTION_WAY_SMS:
- resultVo = doSendSms(reportOweFeeDo, feeCollectionOrderDto);
+ resultVo = doSendSms(reportOweFeeDo, feeCollectionOrderDto);//鐭俊
feeCollectionDetailPo.setCollectionWay(FeeCollectionOrderDto.COLLECTION_WAY_SMS);
break;
case FeeCollectionOrderDto.COLLECTION_WAY_WECHAT:
- resultVo = doSendWechat(reportOweFeeDo, feeCollectionOrderDto);
- feeCollectionDetailPo.setCollectionWay(FeeCollectionOrderDto.COLLECTION_WAY_WECHAT);
+ if (!StringUtil.isEmpty(reportOweFeeDo.getOwnerId())) {
+ Map paramInfo = getOwnerAppUserDto(feeCollectionOrderDto.getCommunityId(), reportOweFeeDo.getOwnerId());
+ resultVo = doSendWechat(reportOweFeeDo, feeCollectionOrderDto, paramInfo);//寰俊
+ feeCollectionDetailPo.setCollectionWay(FeeCollectionOrderDto.COLLECTION_WAY_WECHAT);
+ }
break;
case FeeCollectionOrderDto.COLLECTION_WAY_WECHAT_SMS:
- resultVo = doSendWechatOrSms(reportOweFeeDo, feeCollectionOrderDto, feeCollectionDetailPo);
+ resultVo = doSendWechatOrSms(reportOweFeeDo, feeCollectionOrderDto, feeCollectionDetailPo);//鐭俊鎴栬�呭井淇�
break;
}
-
-
- feeCollectionDetailPo.setCollectionName(feeCollectionOrderDto.getCollectionName());
- feeCollectionDetailPo.setCommunityId(feeCollectionOrderDto.getCommunityId());
- feeCollectionDetailPo.setDetailId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_detailId));
- feeCollectionDetailPo.setFeeName(feeCollectionOrderDto.getCollectionName() + "娆犺垂");
- feeCollectionDetailPo.setOrderId(feeCollectionOrderDto.getOrderId());
- feeCollectionDetailPo.setOweAmount(reportOweFeeDo.getAmountOwed());
- feeCollectionDetailPo.setOwnerId(reportOweFeeDo.getOwnerId());
- feeCollectionDetailPo.setOwnerName(reportOweFeeDo.getOwnerName());
- feeCollectionDetailPo.setPayerObjId(reportOweFeeDo.getPayerObjId());
- feeCollectionDetailPo.setPayerObjName(reportOweFeeDo.getPayerObjName());
- feeCollectionDetailPo.setPayerObjType(reportOweFeeDo.getPayerObjType());
- feeCollectionDetailPo.setState(resultVo.getCode() == ResultVo.CODE_OK ? FeeCollectionOrderDto.STATE_FINISH : FeeCollectionOrderDto.STATE_ERROR);
- feeCollectionDetailPo.setRemarks(resultVo.getMsg().length() > 512 ? resultVo.getMsg().substring(0, 450) : resultVo.getMsg());
- feeCollectionDetailInnerServiceSMOImpl.saveFeeCollectionDetail(feeCollectionDetailPo);
-
-
+ logger.info("寰俊妯℃澘杩斿洖鍐呭:{}", resultVo);
+ if (resultVo != null) {
+ feeCollectionDetailPo.setCollectionName(feeCollectionOrderDto.getCollectionName());
+ feeCollectionDetailPo.setCommunityId(feeCollectionOrderDto.getCommunityId());
+ feeCollectionDetailPo.setDetailId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_detailId));
+ feeCollectionDetailPo.setFeeName(feeCollectionOrderDto.getCollectionName() + "娆犺垂");
+ feeCollectionDetailPo.setOrderId(feeCollectionOrderDto.getOrderId());
+ feeCollectionDetailPo.setOweAmount(reportOweFeeDo.getAmountOwed());
+ feeCollectionDetailPo.setOwnerId(reportOweFeeDo.getOwnerId());
+ feeCollectionDetailPo.setOwnerName(reportOweFeeDo.getOwnerName());
+ feeCollectionDetailPo.setPayerObjId(reportOweFeeDo.getPayerObjId());
+ feeCollectionDetailPo.setPayerObjName(reportOweFeeDo.getPayerObjName());
+ feeCollectionDetailPo.setPayerObjType(reportOweFeeDo.getPayerObjType());
+ feeCollectionDetailPo.setState(resultVo.getCode() == ResultVo.CODE_OK ? FeeCollectionOrderDto.STATE_FINISH : FeeCollectionOrderDto.STATE_ERROR);
+ feeCollectionDetailPo.setRemarks(resultVo.getMsg().length() > 512 ? resultVo.getMsg().substring(0, 450) : resultVo.getMsg());
+ feeCollectionDetailInnerServiceSMOImpl.saveFeeCollectionDetail(feeCollectionDetailPo);
+ }
}
/**
@@ -232,13 +245,13 @@
* @param feeCollectionOrderDto
*/
private ResultVo doSendWechatOrSms(ReportOweFeeDto reportOweFeeDo, FeeCollectionOrderDto feeCollectionOrderDto, FeeCollectionDetailPo feeCollectionDetailPo) {
- Map paramInfo = getOwnerAppUserDto(feeCollectionOrderDto.getCommunityId(), reportOweFeeDo.getOwnerId());
+ Map paramInfo = getOwnerAppUserDto(feeCollectionOrderDto.getCommunityId(), reportOweFeeDo.getOweId());
if (paramInfo == null) {
feeCollectionDetailPo.setCollectionWay(FeeCollectionOrderDto.COLLECTION_WAY_SMS);
- return doSendSms(reportOweFeeDo, feeCollectionOrderDto);
+ return doSendSms(reportOweFeeDo, feeCollectionOrderDto);//鐭俊鎺ㄩ��
}
feeCollectionDetailPo.setCollectionWay(FeeCollectionOrderDto.COLLECTION_WAY_WECHAT);
- return doSendWechat(reportOweFeeDo, feeCollectionOrderDto, paramInfo);
+ return doSendWechat(reportOweFeeDo, feeCollectionOrderDto, paramInfo);//寰俊鎺ㄩ��
}
/**
@@ -267,53 +280,69 @@
}
String templateId = paramInfo.get("templateId").toString();
String url = paramInfo.get("url").toString();
- String oweRoomUrl = paramInfo.get("oweCarUrl").toString();
+ String oweRoomUrl = paramInfo.get("oweRoomUrl").toString();
String oweCarUrl = paramInfo.get("oweCarUrl").toString();
SmallWeChatDto weChatDto = (SmallWeChatDto) paramInfo.get("weChatDto");
- Miniprogram miniprogram = paramInfo.get("oweCarUrl") == null ? null : (Miniprogram) paramInfo.get("oweCarUrl");
+ Miniprogram miniprogram = paramInfo.get("miniprogram") == null ? null : (Miniprogram) paramInfo.get("miniprogram");
List<OwnerAppUserDto> ownerAppUserDtos = (List<OwnerAppUserDto>) paramInfo.get("ownerAppUserDtos");
List<ReportOweFeeItemDto> itemDtos = reportOweFeeDo.getItems();
String oweUrl = "";
for (ReportOweFeeItemDto itemDto : itemDtos) {
+ BigDecimal amountOwed = new BigDecimal(itemDto.getAmountOwed());
oweUrl = FeeDto.PAYER_OBJ_TYPE_ROOM.equals(reportOweFeeDo.getPayerObjType()) ? oweRoomUrl : oweCarUrl;
- for (OwnerAppUserDto appUserDto : ownerAppUserDtos) {
- try {
-
- Data data = new Data();
- PropertyFeeTemplateMessage templateMessage = new PropertyFeeTemplateMessage();
- templateMessage.setTemplate_id(templateId);
- templateMessage.setTouser(appUserDto.getOpenId());
- /*data.setFirst(new Content("鐗╀笟璐圭即璐规彁閱�"));*/
- data.setFirst(new Content(itemDto.getFeeName() + "鎻愰啋"));
- data.setKeyword1(new Content(itemDto.getPayerObjName()));
- data.setKeyword2(new Content(itemDto.getAmountOwed()));
- data.setKeyword3(new Content(
- DateUtil.getFormatTimeString(itemDto.getStartTime(), DateUtil.DATE_FORMATE_STRING_B)
- + "鑷�"
- + DateUtil.getFormatTimeString(itemDto.getEndTime(), DateUtil.DATE_FORMATE_STRING_B)));
- data.setRemark(new Content("璇锋偍鍙婃椂缂磋垂,濡傛湁鐤戦棶璇疯仈绯荤浉鍏崇墿涓氫汉鍛�"));
- if (!StringUtil.isEmpty(oweUrl)) {
- if (miniprogram == null) {
- templateMessage.setUrl(oweUrl + itemDto.getPayerObjId() + "&wAppId=" + weChatDto.getAppId());
- } else {
- miniprogram.setPagepath(oweUrl.split("@@")[1] + itemDto.getPayerObjId() + "&wAppId=" + weChatDto.getAppId());
- templateMessage.setMiniprogram(miniprogram);
- }
- }
- templateMessage.setData(data);
- logger.info("鍙戦�佹ā鏉挎秷鎭唴瀹�:{}", JSON.toJSONString(templateMessage));
- ResponseEntity<String> responseEntity = outRestTemplate.postForEntity(url, JSON.toJSONString(templateMessage), String.class);
- logger.info("寰俊妯℃澘杩斿洖鍐呭:{}", responseEntity);
- } catch (Exception e) {
- LogSystemErrorPo logSystemErrorPo = new LogSystemErrorPo();
- logSystemErrorPo.setErrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_errId));
- logSystemErrorPo.setErrType(LogSystemErrorDto.ERR_TYPE_OWE_FEE);
- logSystemErrorPo.setMsg(ExceptionUtil.getStackTrace(e));
- saveSystemErrorSMOImpl.saveLog(logSystemErrorPo);
- logger.error("娆犺垂鎺ㄩ�佸け璐�" + feeCollectionOrderDto.getCollectionName(), e);
- }
+ String[] roomName = new String[]{};
+ if ("3333".equals(reportOweFeeDo.getPayerObjType())) {
+ roomName = itemDto.getPayerObjName().split("-");
}
+ for (OwnerAppUserDto appUserDto : ownerAppUserDtos) {
+ try {
+ //鑾峰彇鐢ㄦ埛缂磋垂鍒版湡鏃堕棿
+ Date endTime = itemDto.getEndTime();
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(endTime);
+ calendar.add(Calendar.DATE, -1);
+ endTime = calendar.getTime();
+
+ Data data = new Data();
+ PropertyFeeTemplateMessage templateMessage = new PropertyFeeTemplateMessage();
+ templateMessage.setTemplate_id(templateId);
+ templateMessage.setTouser(appUserDto.getOpenId());
+ data.setFirst(new Content(itemDto.getFeeName() + "鎻愰啋"));
+ if ("3333".equals(reportOweFeeDo.getPayerObjType())) {
+ data.setKeyword1(new Content(roomName[0] + "鏍�" + roomName[1] + "鍗曞厓" + roomName[2] + "瀹�"));
+ } else {
+ data.setKeyword1(new Content(itemDto.getPayerObjName()));
+ }
+ DecimalFormat df = new DecimalFormat("0.00");
+ data.setKeyword2(new Content(df.format(amountOwed) + "鍏�"));
+ data.setKeyword3(new Content(
+ DateUtil.getFormatTimeString(itemDto.getStartTime(), DateUtil.DATE_FORMATE_STRING_B)
+ + "鑷�"
+ + DateUtil.getFormatTimeString(endTime, DateUtil.DATE_FORMATE_STRING_B)));
+ data.setRemark(new Content("璇锋偍鍙婃椂缂磋垂,濡傛湁鐤戦棶璇疯仈绯荤浉鍏崇墿涓氫汉鍛橈紒"));
+
+ if (!StringUtil.isEmpty(oweUrl)) {
+ if (miniprogram == null) {
+ templateMessage.setUrl(oweUrl + itemDto.getPayerObjId() + "&wAppId=" + weChatDto.getAppId());
+ } else {
+ miniprogram.setPagepath(oweUrl.split("@@")[1] + itemDto.getPayerObjId() + "&wAppId=" + weChatDto.getAppId());
+ templateMessage.setMiniprogram(miniprogram);
+ }
+ }
+ templateMessage.setData(data);
+ logger.info("鍙戦�佹ā鏉挎秷鎭唴瀹�:{}", JSON.toJSONString(templateMessage));
+ ResponseEntity<String> responseEntity = outRestTemplate.postForEntity(url, JSON.toJSONString(templateMessage), String.class);
+ logger.info("寰俊妯℃澘杩斿洖鍐呭:{}", responseEntity);
+ } catch (Exception e) {
+ LogSystemErrorPo logSystemErrorPo = new LogSystemErrorPo();
+ logSystemErrorPo.setErrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_errId));
+ logSystemErrorPo.setErrType(LogSystemErrorDto.ERR_TYPE_OWE_FEE);
+ logSystemErrorPo.setMsg(ExceptionUtil.getStackTrace(e));
+ saveSystemErrorSMOImpl.saveLog(logSystemErrorPo);
+ logger.error("娆犺垂鎺ㄩ�佸け璐�" + feeCollectionOrderDto.getCollectionName(), e);
+ }
+ }
}
return new ResultVo(ResultVo.CODE_OK, ResultVo.MSG_OK);
@@ -336,11 +365,23 @@
return new ResultVo(ResultVo.CODE_ERROR, "鏈厤缃煭淇′俊鎭�");
}
Object paramIn = null;
- if ("ALI".equals(smsConfigDto.getSmsType())) {
+ List<ReportOweFeeItemDto> itemDtos = reportOweFeeDo.getItems();
+ //鑾峰彇鐢ㄦ埛缂磋垂鍒版湡鏃堕棿
+ Date endTime = itemDtos.get(0).getEndTime();
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(endTime);
+ calendar.add(Calendar.DATE, -1);
+ endTime = calendar.getTime();
+ SmsConfigDto smsConfigDto1 = BeanConvertUtil.covertBean(smsConfigDtos.get(0), SmsConfigDto.class);
+ // 灏婃暚鐨勪笟涓�${user}锛屾偍${house}鐨�${feeType}锛岃处鍗曟棩鏈�${date}鑷�${date2}锛岀即璐归噾棰濓細${mount}鍏冿紝璇峰強鏃剁即璐�
+ if ("ALI".equals(smsConfigDto1.getSmsType())) {
JSONObject param = new JSONObject();
param.put("user", reportOweFeeDo.getOwnerName());
param.put("house", reportOweFeeDo.getPayerObjName());
- param.put("amountOwed", reportOweFeeDo.getAmountOwed());
+ param.put("feeType", itemDtos.get(0).getFeeName());
+ param.put("date", DateUtil.getFormatTimeString(itemDtos.get(0).getStartTime(), DateUtil.DATE_FORMATE_STRING_B));
+ param.put("date2", DateUtil.getFormatTimeString(endTime, DateUtil.DATE_FORMATE_STRING_B));
+ param.put("mount", reportOweFeeDo.getAmountOwed());
paramIn = param;
} else {
paramIn = new String[]{
@@ -360,7 +401,7 @@
}
ResultVo resultVo = null;
for (OwnerDto ownerDto1 : ownerDtos) {
- resultVo = SendSmsFactory.sendOweFeeSms(ownerDto1.getLink(), smsConfigDto, paramIn);
+ resultVo = SendSmsFactory.sendOweFeeSms(ownerDto1.getLink(), smsConfigDto1, paramIn);
}
return resultVo;
@@ -404,6 +445,7 @@
OwnerAppUserDto ownerAppUserDto = new OwnerAppUserDto();
ownerAppUserDto.setCommunityId(weChatDto.getObjId());
ownerAppUserDto.setAppType(OwnerAppUserDto.APP_TYPE_WECHAT);
+ ownerAppUserDto.setMemberId(memberId);
List<OwnerAppUserDto> ownerAppUserDtos = ownerAppUserInnerServiceSMOImpl.queryOwnerAppUsers(ownerAppUserDto);
if (ownerAppUserDtos == null || ownerAppUserDtos.size() < 1) {
@@ -452,19 +494,23 @@
}
ReportOweFeeDto reportOweFeeDto = new ReportOweFeeDto();
reportOweFeeDto.setPayerObjIds(payObjIds.toArray(new String[payObjIds.size()]));
+ reportOweFeeDto.setHasOweFee("Y");
List<ReportOweFeeDto> allReportOweFeeDtos = reportOweFeeInnerServiceSMOImpl.queryReportAllOweFees(reportOweFeeDto);
List<ReportOweFeeDto> reportOweFeeDtos = new ArrayList<>();
for (ReportOweFeeDto reportOweFee : allReportOweFeeDtos) {
ReportOweFeeDto reportOwe = new ReportOweFeeDto();
reportOwe.setOweId(reportOweFee.getOweId());
+ reportOwe.setHasOweFee("Y");
reportOweFee.setPayerObjType(reportOweFee.getPayerObjType());
if (reportOweFee.getPayerObjType().equals("3333")) {
List<ReportOweFeeDto> reportOweFees = reportOweFeeInnerServiceSMOImpl.queryReportAllOweFeesByRoom(reportOwe);
reportOweFee.setOweId(reportOweFees.get(0).getOweId());
+ reportOweFee.setOwnerId(reportOweFees.get(0).getOwnerId());
reportOweFee.setOwnerName(reportOweFees.get(0).getOwnerName());
} else if (reportOweFee.getPayerObjType().equals("6666")) {
List<ReportOweFeeDto> reportOweFees = reportOweFeeInnerServiceSMOImpl.queryReportAllOweFeesByCar(reportOwe);
reportOweFee.setOweId(reportOweFees.get(0).getOweId());
+ reportOweFee.setOwnerId(reportOweFees.get(0).getOwnerId());
reportOweFee.setOwnerName(reportOweFees.get(0).getOwnerName());
}
reportOweFeeDtos.add(reportOweFee);
@@ -510,6 +556,12 @@
if (!StringUtil.isEmpty(reportOweFeeDto.getOwnerName()) && StringUtil.isEmpty(oldReportOweFeeDto.getOwnerName())) {
oldReportOweFeeDto.setOwnerName(reportOweFeeDto.getOwnerName());
}
+ if (!StringUtil.isEmpty(reportOweFeeDto.getOwnerId()) && StringUtil.isEmpty(oldReportOweFeeDto.getOwnerId())) {
+ oldReportOweFeeDto.setOwnerId(reportOweFeeDto.getOwnerId());
+ }
+ if (!StringUtil.isEmpty(reportOweFeeDto.getPayerObjType()) && StringUtil.isEmpty(oldReportOweFeeDto.getPayerObjType())) {
+ oldReportOweFeeDto.setPayerObjType(reportOweFeeDto.getPayerObjType());
+ }
oldReportOweFeeDto.setUpdateTime(reportOweFeeDto.getUpdateTime());
oldReportOweFeeDto.setConfigName(reportOweFeeDto.getConfigName());
}
--
Gitblit v1.8.0