EaiOrderDispatchRule.java
3.91 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
123
124
125
package com.sitech.ismp.coll.busi.e2e.rule;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.ResourceBundle;
import com.sitech.ismp.coll.busi.e2e.E2EConstant;
import com.sitech.ismp.coll.busi.e2e.dao.TbE2eCrmOrderDao;
import com.sitech.ismp.coll.busi.e2e.dao.TbE2eEaiOrderExceptDao;
import com.sitech.ismp.coll.busi.e2e.domain.EaiAuditFileTag;
import com.sitech.ismp.coll.busi.e2e.domain.TbE2eCrmOrder;
import com.sitech.ismp.coll.busi.e2e.domain.TbE2eEaiOrderExcept;
import com.sitech.ismp.coll.busi.e2e.domain.TbE2eProcessFinishTag;
import com.sitech.util.Formater;
import com.sitech.util.JSONUtil;
/**
* EAI数据稽核
*
* @author linxc
* @version
* @since Ver 1.1
* @Date 2012 May 15, 2012 11:14:03 AM
*/
public class EaiOrderDispatchRule extends AnalysisRule {
TbE2eEaiOrderExceptDao exceptOrderDao;
TbE2eCrmOrderDao crmOrderDao;
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strDate = sf.format(new Date());
String url;
EAIServiceStub serivceStub = new EAIServiceStub();
public EaiOrderDispatchRule(Map<String, String> params) {
super(params);
exceptOrderDao = new TbE2eEaiOrderExceptDao(params);
crmOrderDao = new TbE2eCrmOrderDao(params);
ResourceBundle agentConfig = ResourceBundle.getBundle("e2eMontorConfig");
url = agentConfig.getString("EAI_URL");
}
protected void excute() {
if(url == null || url.equals("")){
return;
}
List<EaiAuditFileTag> eaiAuditFileTag = fileFinishTagdao.selectEaiAuditFileTag(E2EConstant.RULE_TYPE_EAI_AUDIT);
if (eaiAuditFileTag == null || eaiAuditFileTag.size() == 0) {
return;
}
for (EaiAuditFileTag fileTag : eaiAuditFileTag) {
TbE2eProcessFinishTag crmProcessTag = new TbE2eProcessFinishTag(
fileTag.getCRM_ORDER_FILE_ID(), fileTag.getFILE_TIME(),
E2EConstant.FILE_TYPE_CRM_ORDER,
E2EConstant.RULE_TYPE_EAI_AUDIT);
TbE2eProcessFinishTag ibpProcessTag = new TbE2eProcessFinishTag(
fileTag.getIBP_REC_FILE_ID(), fileTag.getFILE_TIME(),
E2EConstant.FILE_TYPE_IBP_RECEIVE_ORDER,
E2EConstant.RULE_TYPE_EAI_AUDIT);
processTagDao.insertTbE2eProcessFinishTag(crmProcessTag);
processTagDao.insertTbE2eProcessFinishTag(ibpProcessTag);
}
for (EaiAuditFileTag fileTag : eaiAuditFileTag) {
List<TbE2eCrmOrder> diffCrmOrder = crmOrderDao
.selectDiffCrmOrder(fileTag.getFILE_TIME());
if (diffCrmOrder == null || diffCrmOrder.size() == 0) {
continue;
}
int size = diffCrmOrder.size();
for (int i = 0; i < size / 10 + 1; i++) {
List<TbE2eCrmOrder> requestParamList = new ArrayList<TbE2eCrmOrder>();
for (int j = i * 10; (j < (i + 1) * 10) && (j < size); j++) {
TbE2eCrmOrder order = diffCrmOrder.get(j);
requestParamList.add(order);
}
List<TbE2eEaiOrderExcept> responseResultList = null;
try {
responseResultList = serivceStub.invokeEai(url, strDate,
requestParamList);
} catch (Exception e) {
error.error("Exception while invokeEai", e);
}
if (responseResultList == null
|| responseResultList.size() == 0) {
continue;
}
processKpi(responseResultList);
}
}
}
private void processKpi(List<TbE2eEaiOrderExcept> result) {
for (TbE2eEaiOrderExcept eaiOrderExcept : result) {
String uCrmOrderId = Formater.neatenunitid(eaiOrderExcept
.getCRM_ORDER_ID());
String uCrmOrderVersion = Formater.neatenunitid(eaiOrderExcept
.getVERSION_NUM());
String unitId = kbpClass + ":" + productType + "-" + uCrmOrderId
+ "-" + uCrmOrderVersion;
String kpiId = "PM-02-00-000-03";
String kpiValue = eaiOrderExcept.getAUDIT_STATUS();
eaiOrderExcept.setUNIT_ID(unitId);
eaiOrderExcept.setKPI_ID(kpiId);
String extEventInfo = JSONUtil.toJSON(eaiOrderExcept);
if (kpiToEvent(unitId, kpiId, kpiValue, 1, extEventInfo)) {
exceptOrderDao.insertTbE2eEaiOrderExcept(eaiOrderExcept);
}
}
}
}