KxOrderResourceConfirmRule.java
3.05 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
package com.sitech.ismp.coll.busi.e2e.rule;
import java.util.Date;
import java.util.List;
import java.util.Map;
import com.sitech.ismp.coll.busi.e2e.E2EConstant;
import com.sitech.ismp.coll.busi.e2e.dao.TbE2eKxOrderDao;
import com.sitech.ismp.coll.busi.e2e.dao.TbE2eKxOrderExceptDao;
import com.sitech.ismp.coll.busi.e2e.domain.TbE2eFile2dbFinishTag;
import com.sitech.ismp.coll.busi.e2e.domain.TbE2eOneStopKxOrder;
import com.sitech.ismp.coll.busi.e2e.domain.TbE2eOneStopKxOrderExcept;
import com.sitech.ismp.coll.busi.e2e.domain.TbE2eProcessFinishTag;
import com.sitech.util.Formater;
import com.sitech.util.JSONUtil;
/**
* 资源确认
* @author huangqj
* @date 2012-10-30
*/
public class KxOrderResourceConfirmRule extends AnalysisRule {
private TbE2eKxOrderExceptDao exceptDao;
private TbE2eKxOrderDao orderDao;
public KxOrderResourceConfirmRule(Map<String, String> params) {
super(params);
exceptDao = new TbE2eKxOrderExceptDao(params);
orderDao = new TbE2eKxOrderDao(params);
}
protected void excute() {
//已经入库,但未分析的客响数据文件
List<TbE2eFile2dbFinishTag> kxOrderFileList = getTbE2eFile2dbFinishTag(
E2EConstant.FILE_TYPE_KX_ORDER, E2EConstant.RULE_TYPE_KX_ORDER_RESOURCE_CONFIRM);
if(kxOrderFileList == null || kxOrderFileList.size() == 0){
return;
}
for (TbE2eFile2dbFinishTag orderFileTag : kxOrderFileList) {
processKxOrderFile(orderFileTag);
TbE2eProcessFinishTag processTag = new TbE2eProcessFinishTag(orderFileTag, E2EConstant.RULE_TYPE_KX_ORDER_RESOURCE_CONFIRM);
processTagDao.insertTbE2eProcessFinishTag(processTag);
}
}
private void processKxOrderFile(TbE2eFile2dbFinishTag orderFileTag) {
Date fileTime = orderFileTag.getFILE_TIME();
List<TbE2eOneStopKxOrder> kxOrderList = orderDao.selectTbE2eOneStopKxOrder2(fileTime);
if (kxOrderList != null && kxOrderList.size() != 0) {
for (TbE2eOneStopKxOrder kxOrder : kxOrderList) {
processKpi(kxOrder);
}
}
}
private void processKpi(TbE2eOneStopKxOrder kxOrder) {
try {
String uCrmOrderId = Formater.neatenunitid(kxOrder.getCRM_ORDER_ID());
String uP6OrderId = Formater.neatenunitid(kxOrder.getP6_ID());
String unitId = kbpClass + ":" + productType + "-" + uCrmOrderId + "-" + uP6OrderId;
String kpiId = "PM-02-00-000-01";
double startTime = kxOrder.getORDER_RECEIVE_DT().getTime();
double endTime;
if (kxOrder.getORDER_FINISH_DT() == null) {
endTime = new Date().getTime();
} else {
endTime = kxOrder.getORDER_FINISH_DT().getTime();
}
String kpiValue = Double.toString((endTime - startTime) / (60 * 60 * 1000));
kpiValue = Formater.formatDecimalKpivalue(kpiValue);
TbE2eOneStopKxOrderExcept exceptionOrder = new TbE2eOneStopKxOrderExcept(kxOrder, unitId, kpiId, kpiValue);
String extEventInfo = JSONUtil.toJSON(exceptionOrder);
logger.info(unitId + "\t" + kpiId + "\t" + kpiValue);
if(kpiToEvent(unitId, kpiId, kpiValue,1, extEventInfo)){
exceptDao.insertTbE2eOneStopKxOrderExcept(exceptionOrder);
}
} catch (Exception e) {
logger.error("Exception while processKpi", e);
}
}
}