|
@@ -56,7 +56,7 @@ public class UserHandler extends SimpleChannelInboundHandler<String> {
|
|
|
{
|
|
|
System.out.println("收到==="+arg1+"\n");
|
|
|
String ret = processMsg(arg1);
|
|
|
- sendMsg(ret);
|
|
|
+// sendMsg(ret);
|
|
|
}
|
|
|
|
|
|
private String processMsg(String input) {
|
|
@@ -119,27 +119,33 @@ public class UserHandler extends SimpleChannelInboundHandler<String> {
|
|
|
} else {
|
|
|
logger.error("调用基站解析平台出错: " + resp);
|
|
|
}
|
|
|
-
|
|
|
+ String crcStr = input.substring(input.length() - 4);
|
|
|
+ item.setCrcCode(""+reverseParseHex(crcStr));
|
|
|
//存入数据库
|
|
|
mouldHistoryMapper.insertSelective(item);
|
|
|
//模具开合记录
|
|
|
int cnt = item.getRunCnt();
|
|
|
int start = 69;
|
|
|
System.out.println("开合模次数="+cnt);
|
|
|
- for (int pos=0; pos<cnt; pos++ ) {
|
|
|
- //合模时间
|
|
|
- MouldHistoryTime time = new MouldHistoryTime();
|
|
|
- time.setHistoryId(item.getId());
|
|
|
- time.setSeq(pos + 1);
|
|
|
- Date closeTime = parseDate(input, start, pos, 0);
|
|
|
- time.setCloseTime(closeTime);
|
|
|
- //开模时间
|
|
|
- Date openTime = parseDate(input, start, pos, 6);
|
|
|
- time.setOpenTime(openTime);
|
|
|
- int timeCost = (int) (openTime.getTime() - closeTime.getTime());
|
|
|
- time.setTimeCost(timeCost);
|
|
|
- mouldHistoryTimeMapper.insertSelective(time);
|
|
|
+ logger.info("时间=="+input.substring(start*2));
|
|
|
+ int end = (start+(cnt-1)*6+5 + 6)*2;
|
|
|
+ if (input.length() >= end) {//防止传过来的只有开合模次数,却没有时间
|
|
|
+ for (int pos=0; pos<cnt; pos++ ) {
|
|
|
+ //合模时间
|
|
|
+ MouldHistoryTime time = new MouldHistoryTime();
|
|
|
+ time.setHistoryId(item.getId());
|
|
|
+ time.setSeq(pos + 1);
|
|
|
+ Date closeTime = parseDate(input, start, pos, 0);
|
|
|
+ time.setCloseTime(closeTime);
|
|
|
+ //开模时间
|
|
|
+ Date openTime = parseDate(input, start, pos, 6);
|
|
|
+ time.setOpenTime(openTime);
|
|
|
+ int timeCost = (int) (openTime.getTime() - closeTime.getTime());
|
|
|
+ time.setTimeCost(timeCost);
|
|
|
+ mouldHistoryTimeMapper.insertSelective(time);
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
MouldHistoryTimeExample exp = new MouldHistoryTimeExample();
|
|
|
exp.createCriteria().andHistoryIdEqualTo(item.getId());
|
|
|
List<MouldHistoryTime> list = mouldHistoryTimeMapper.selectByExample(exp);
|
|
@@ -214,7 +220,7 @@ public class UserHandler extends SimpleChannelInboundHandler<String> {
|
|
|
return Integer.parseInt(str, 16);
|
|
|
}
|
|
|
|
|
|
- private Date parseDate(String input, int start, int pos, int dateStartPos) {
|
|
|
+ private static Date parseDate(String input, int start, int pos, int dateStartPos) {
|
|
|
String year = input.substring((start+pos*6 + dateStartPos)*2, (start+pos*6 + 1 + dateStartPos)*2);
|
|
|
String month = input.substring((start+pos*6+1 + dateStartPos)*2, (start+pos*6 + 2 + dateStartPos)*2);
|
|
|
String day = input.substring((start+pos*6+2 + dateStartPos)*2, (start+pos*6 + 3 + dateStartPos)*2);
|
|
@@ -223,12 +229,17 @@ public class UserHandler extends SimpleChannelInboundHandler<String> {
|
|
|
String ss = input.substring((start+pos*6+5 + dateStartPos)*2, (start+pos*6 + 6 + dateStartPos)*2);
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
int yearInt = Integer.parseInt(year, 16);
|
|
|
- sb.append(yearInt < 100?"20":"2");
|
|
|
- sb.append(yearInt).append("-");
|
|
|
- int monthInt = Integer.parseInt(month, 16);
|
|
|
- sb.append(monthInt<10?"0":"").append(monthInt).append("-");
|
|
|
- int dayInt = Integer.parseInt(day, 16);
|
|
|
- sb.append(dayInt<10?"0":"").append(dayInt);
|
|
|
+ if (yearInt == 0) {
|
|
|
+ sb.append("2019-01-01");
|
|
|
+ } else {
|
|
|
+ sb.append(yearInt < 100?"20":"2");
|
|
|
+ sb.append(yearInt).append("-");
|
|
|
+ int monthInt = Integer.parseInt(month, 16);
|
|
|
+ sb.append(monthInt<10?"0":"").append(monthInt).append("-");
|
|
|
+ int dayInt = Integer.parseInt(day, 16);
|
|
|
+ sb.append(dayInt<10?"0":"").append(dayInt);
|
|
|
+ }
|
|
|
+
|
|
|
Date parseDate = null;
|
|
|
try {
|
|
|
parseDate = new SimpleDateFormat("yyyy-MM-dd").parse(sb.toString());
|
|
@@ -360,12 +371,19 @@ public class UserHandler extends SimpleChannelInboundHandler<String> {
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
// String str = "1F51";
|
|
|
- String str = "E85F";
|
|
|
- String temp = "0x"+str;
|
|
|
- int i = Integer.decode(temp);
|
|
|
- System.out.println(i);
|
|
|
- int p = reverseParseHex(str);
|
|
|
- System.out.println(p);
|
|
|
+ String str = "FAAF470000000000000000000000003137333030303239333810010000000000000000000000000000000000000000001F51E85F0000000000004800646400010001000000ACE1";
|
|
|
+// String temp = "0x"+str;
|
|
|
+// int i = Integer.decode(temp);
|
|
|
+// System.out.println(i);
|
|
|
+// int p = reverseParseHex(str);
|
|
|
+// System.out.println(p);
|
|
|
+// int start = 69;
|
|
|
+// System.out.println(str.substring(69*2));
|
|
|
+// Date d = parseDate(str, start, 0, 0);
|
|
|
+// System.out.println(d.toGMTString());
|
|
|
+ str = str.substring(str.length() - 4);
|
|
|
+ System.out.println(str);
|
|
|
+ System.out.println(reverseParseHex(str));
|
|
|
}
|
|
|
|
|
|
}
|