PayFeeDetailToMonthAdapt.java
4.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
package com.java110.job.adapt.fee;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.java110.dto.fee.FeeDetailDto;
import com.java110.dto.system.Business;
import com.java110.intf.community.ICommunityInnerServiceSMO;
import com.java110.intf.fee.IFeeDetailInnerServiceSMO;
import com.java110.intf.user.IOwnerAppUserInnerServiceSMO;
import com.java110.intf.user.IOwnerCarInnerServiceSMO;
import com.java110.intf.user.IOwnerInnerServiceSMO;
import com.java110.intf.user.IOwnerRoomRelInnerServiceSMO;
import com.java110.job.adapt.DatabusAdaptImpl;
import com.java110.job.adapt.fee.asyn.IPayFeeDetailToMonth;
import com.java110.po.fee.PayFeeDetailPo;
import com.java110.utils.util.Assert;
import org.slf4j.Logger;
import com.java110.core.log.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
/**
* 缴费数据离散到每个月
*
* 主要为了解决 华宁物业需求
*
* @author 吴学文
* @date 2020-12-11 18:54
*/
@Component(value = "payFeeDetailToMonthAdapt")
public class PayFeeDetailToMonthAdapt extends DatabusAdaptImpl {
private static Logger logger = LoggerFactory.getLogger(PayFeeDetailToMonthAdapt.class);
@Autowired
private ICommunityInnerServiceSMO communityInnerServiceSMO;
@Autowired
private IFeeDetailInnerServiceSMO feeDetailInnerServiceSMOImpl;
@Autowired
private IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMO;
@Autowired
private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMO;
@Autowired
private IOwnerInnerServiceSMO ownerInnerServiceSMO;
@Autowired
private IOwnerAppUserInnerServiceSMO ownerAppUserInnerServiceSMO;
@Autowired
private IPayFeeDetailToMonth payFeeDetailToMonthImpl;
//模板信息推送地址
private static String sendMsgUrl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=";
public final static String ALI_SMS_DOMAIN = "ALI_SMS";
@Override
public void execute(Business business, List<Business> businesses) {
JSONObject data = business.getData();
JSONArray businessPayFeeDetails = null;
if (data == null) {
FeeDetailDto feeDetailDto = new FeeDetailDto();
feeDetailDto.setbId(business.getbId());
List<FeeDetailDto> feeDetailDtos = feeDetailInnerServiceSMOImpl.queryFeeDetails(feeDetailDto);
Assert.listOnlyOne(feeDetailDtos, "未查询到缴费记录");
businessPayFeeDetails = JSONArray.parseArray(JSONArray.toJSONString(feeDetailDtos, SerializerFeature.WriteDateUseDateFormat));
} else if (data.containsKey(PayFeeDetailPo.class.getSimpleName())) {
Object bObj = data.get(PayFeeDetailPo.class.getSimpleName());
if (bObj instanceof JSONObject) {
businessPayFeeDetails = new JSONArray();
businessPayFeeDetails.add(bObj);
} else if (bObj instanceof Map) {
businessPayFeeDetails = new JSONArray();
businessPayFeeDetails.add(JSONObject.parseObject(JSONObject.toJSONString(bObj)));
} else if (bObj instanceof List) {
businessPayFeeDetails = JSONArray.parseArray(JSONObject.toJSONString(bObj));
} else {
businessPayFeeDetails = (JSONArray) bObj;
}
} else {
if (data instanceof JSONObject) {
businessPayFeeDetails = new JSONArray();
businessPayFeeDetails.add(data);
}
}
if (businessPayFeeDetails == null) {
return;
}
for (int bPayFeeDetailIndex = 0; bPayFeeDetailIndex < businessPayFeeDetails.size(); bPayFeeDetailIndex++) {
JSONObject businessPayFeeDetail = businessPayFeeDetails.getJSONObject(bPayFeeDetailIndex);
doPayFeeDetail(business, businessPayFeeDetail);
}
}
/**
* 转异步处理
* @param business
* @param businessPayFeeDetail
*/
private void doPayFeeDetail(Business business, JSONObject businessPayFeeDetail) {
// if(businessPayFeeDetail.containsKey("receivedAmount")
// && businessPayFeeDetail.getDoubleValue("receivedAmount")<0){
// return ;
// }
payFeeDetailToMonthImpl.doPayFeeDetail(business,businessPayFeeDetail);
}
}