ZiYuanShenHeRule.java
4.4 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.sitech.ismp.coll.busi.e2e.rule;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.sitech.ismp.coll.busi.e2e.E2EConstant;
import com.sitech.ismp.coll.busi.e2e.dao.TbE2eIbpOrderDao;
import com.sitech.ismp.coll.busi.e2e.dao.TbE2eIbpOrderExceptDao;
import com.sitech.ismp.coll.busi.e2e.domain.TbE2eFile2dbFinishTag;
import com.sitech.ismp.coll.busi.e2e.domain.TbE2eIbpOrder;
import com.sitech.ismp.coll.busi.e2e.domain.TbE2eIbpOrderExcept;
import com.sitech.ismp.coll.busi.e2e.domain.TbE2eProcessFinishTag;
import com.sitech.util.DES3;
import com.sitech.util.Formater;
import com.sitech.util.JSONUtil;
/**
* 资源审核分析规则
* @author huangqj
* @date 2012-6-28
*/
public class ZiYuanShenHeRule extends AnalysisRule{
private TbE2eIbpOrderExceptDao exceptDao;
public ZiYuanShenHeRule(Map<String, String> params) {
super(params);
exceptDao = new TbE2eIbpOrderExceptDao(params);
}
@Override
protected void excute() {
logger.info("Begin execute ZziOrderSource2sendRule...");
List<TbE2eFile2dbFinishTag> zziOrderFileList = getTbE2eFile2dbFinishTag(
E2EConstant.FILE_TYPE_IBP_ORDER,
E2EConstant.RULE_TYPE_RES_CHECK);
if(zziOrderFileList == null || zziOrderFileList.size() == 0){
return;
}
for (TbE2eFile2dbFinishTag orderFileTag : zziOrderFileList) {
process(orderFileTag);
//入库已处理完毕
TbE2eProcessFinishTag processTag = new TbE2eProcessFinishTag(orderFileTag, E2EConstant.RULE_TYPE_RES_CHECK);
processTagDao.insertTbE2eProcessFinishTag(processTag);
}
}
private void process(TbE2eFile2dbFinishTag orderFileTag) {
Date fileTime = orderFileTag.getFILE_TIME();
TbE2eIbpOrderDao orderDao = new TbE2eIbpOrderDao(params);
List<TbE2eIbpOrder> ZziOrderList = orderDao.selectTbE2eIbpOrder(params,productType, fileTime);
if (ZziOrderList != null && ZziOrderList.size() != 0) {
for (TbE2eIbpOrder ZziOrder : ZziOrderList) {
processKpi(ZziOrder);
}
}
}
private void processKpi(TbE2eIbpOrder ibpOrder) {
try{
String kpiId = "PM-02-00-000-01";
//UNIT_ID = KBP_CLASS:CRM订单号-CRM订单版本号-P6号-任务号
String uCrmOrderId = Formater.neatenunitid(ibpOrder.getCUST_ORDER_ID());
String uCrmOrderVersion = Formater.neatenunitid(ibpOrder.getCRM_VERSION());
String uP6OrderId = Formater.neatenunitid(ibpOrder.getP6_ID());
String uTaskId = Formater.neatenunitid(ibpOrder.getTASK_ID());
String unitId = kbpClass + ":" + productType + "-" + uCrmOrderId + "-"
+ uCrmOrderVersion + "-" + uP6OrderId + "-" + uTaskId;
double currTime = new Date().getTime();
double taskStartTime = ibpOrder.getTASK_START_TIME().getTime();
Date outTime = ibpOrder.getIBP_SEND_OUTSYS_TIME();
String orderStatus = ibpOrder.getORDER_STATUS();
if (null != outTime && "资源审核".equals(orderStatus)) {
// 已经发送综资
String kpiValue = Double.toString((currTime - taskStartTime) / (60 * 60 * 1000));
kpiValue = Formater.formatDecimalKpivalue(kpiValue);
logger.info(unitId + "\t" + kpiId + "\t" + kpiValue);
TbE2eIbpOrderExcept exceptOrder = new TbE2eIbpOrderExcept(ibpOrder, unitId, kpiId, kpiValue);
String extEventInfo = JSONUtil.toJSON(exceptOrder);
if(kpiToEvent(unitId, kpiId, kpiValue,1, extEventInfo)){
exceptDao.insertTbE2eIbpOrderExcept(exceptOrder);
}
}
}catch (Exception e) {
logger.error("Exception while processKpi", e);
}
}
public static void main(String[] args) throws Exception {
HashMap<String, String> params = new HashMap<String, String>();
params.put("JDBC.Driver", "oracle.jdbc.driver.OracleDriver");
params.put("JDBC.ConnectionURL", "jdbc:oracle:thin:@172.21.0.77:1527:bnms");
params.put("JDBC.Username", "bnms15");
params.put("JDBC.Password", DES3.encrypt("bnms15"));
params.put("KBP_CLASS", "12-12-11");
params.put("TAG_TYPE", "OpNet48New");
params.put("SYSTEM_NAME", "97/综资");
params.put("SERVICE_RULE_CLASS", "com.sitech.ismp.coll.busi.e2e.rule.ZiYuanShenHeRule");
ZiYuanShenHeRule rule = new ZiYuanShenHeRule(params);
TbE2eIbpOrderDao orderDao = new TbE2eIbpOrderDao(params);
Date fileTime = Formater.stringToDateTime("2012-11-05 06:00:00");
List<TbE2eIbpOrder> ZziOrderList = orderDao.selectTbE2eIbpOrder(params,"OpNet48New", fileTime);
if (ZziOrderList != null && ZziOrderList.size() != 0) {
for (TbE2eIbpOrder ZziOrder : ZziOrderList) {
rule.processKpi(ZziOrder);
}
}
}
}