Browse Source

行之成 EIS 增加 接口-静电相关的三个

xiaost 2 weeks ago
parent
commit
a3dd5b601b

+ 18 - 0
src/main/java/com/uas/eis/controller/MESHelperController.java

@@ -271,4 +271,22 @@ public class MESHelperController {
     public Map<Object,Object> getMainAllSnCode(HttpServletRequest request,  @RequestBody String json){
         return mesHelperService.getMainAllSnCode(json);
     }
+
+    //增加对接静电
+    @RequestMapping(value="/saveSeatDevice")
+    public Map<String,Object> saveSeatDevice(HttpServletRequest request,  @RequestBody String json){
+        return mesHelperService.saveSeatDevice(json);
+    }
+
+    //增加对接机器数据
+    @RequestMapping(value="/saveMachineDevice")
+    public Map<String,Object> saveMachineDevice(HttpServletRequest request,  @RequestBody String json){
+        return mesHelperService.saveMachineDevice(json);
+    }
+
+    //增加对接台垫数据
+    @RequestMapping(value="/saveCushionDevice")
+    public Map<String,Object> saveCushionDevice(HttpServletRequest request,  @RequestBody String json){
+        return mesHelperService.saveCushionDevice(json);
+    }
 }

+ 12 - 0
src/main/java/com/uas/eis/entity/MainCushionDevice.java

@@ -0,0 +1,12 @@
+package com.uas.eis.entity;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class MainCushionDevice {
+    private Long timestamp;
+    private String sign;
+    private List<MainCushionDeviceState> dataList;
+}

+ 26 - 0
src/main/java/com/uas/eis/entity/MainCushionDeviceState.java

@@ -0,0 +1,26 @@
+package com.uas.eis.entity;
+
+import lombok.Data;
+
+@Data
+public class MainCushionDeviceState {
+    private Integer id;
+    private String factoryName;
+    private String lineName;
+    private Integer seatNo;
+    private String seatDeviceName;
+    private String seatDeviceMark;
+    private Integer moduleSort;
+    private Integer cushionState;
+    private Double moduleLimits;
+    private Double moduleResistanceValue;
+    private String createTime;
+
+    public String toSqlString() {
+        return "insert into MAINCUSHIONDEVICESTATE(ID,FACTORYNAME,LINENAME,SEATNO,SEATDEVICENAME,SEATDEVICEMARK," +
+                "   CUSHIONSTATE,MODULELIMITS,MODULERESISTANCEVALUE,MODULESORT,CREATETIME)" +
+                " values (" + id + ",'" + factoryName + "','" + lineName + "'," + seatNo + ",'" + seatDeviceName + "','" + seatDeviceMark + "',"
+                + cushionState + ","+moduleLimits+","+moduleResistanceValue+","+moduleSort+","
+                + (createTime != null ? "to_date('" + createTime + "','yyyy-MM-dd HH24:mi:ss')": "null")+")";
+    }
+}

+ 12 - 0
src/main/java/com/uas/eis/entity/MainMachineDevice.java

@@ -0,0 +1,12 @@
+package com.uas.eis.entity;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class MainMachineDevice {
+    private Long timestamp;
+    private String sign;
+    private List<MainMachineDeviceState> dataList;
+}

+ 26 - 0
src/main/java/com/uas/eis/entity/MainMachineDeviceState.java

@@ -0,0 +1,26 @@
+package com.uas.eis.entity;
+
+import lombok.Data;
+
+@Data
+public class MainMachineDeviceState {
+    private Integer id;
+    private String factoryName;
+    private String lineName;
+    private Integer seatNo;
+    private String seatDeviceName;
+    private String seatDeviceMark;
+    private Integer moduleSort;
+    private Integer machineState;
+    private Double moduleLimits;
+    private Double moduleResistanceValue;
+    private String createTime;
+
+    public String toSqlString() {
+        return "insert into MainMachineDeviceState(ID,FACTORYNAME,LINENAME,SEATNO,SEATDEVICENAME,SEATDEVICEMARK," +
+                "    MACHINESTATE,MODULELIMITS,MODULERESISTANCEVALUE,MODULESORT,CREATETIME)" +
+                " values (" + id + ",'" + factoryName + "','" + lineName + "'," + seatNo + ",'" + seatDeviceName + "','" + seatDeviceMark + "',"
+                + machineState + ","+moduleLimits+","+moduleResistanceValue+","+moduleSort+","
+                + (createTime != null ? "to_date('" + createTime + "','yyyy-MM-dd HH24:mi:ss')": "null")+")";
+    }
+}

+ 12 - 0
src/main/java/com/uas/eis/entity/MainSeatDevice.java

@@ -0,0 +1,12 @@
+package com.uas.eis.entity;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class MainSeatDevice {
+    private Long timestamp;
+    private String sign;
+    private List<MainSeatDeviceState> dataList;
+}

+ 28 - 0
src/main/java/com/uas/eis/entity/MainSeatDeviceState.java

@@ -0,0 +1,28 @@
+package com.uas.eis.entity;
+
+import lombok.Data;
+
+@Data
+public class MainSeatDeviceState {
+    private Integer id;
+    private String factoryName;
+    private String lineName;
+    private Integer seatNo;
+    private String seatDeviceName;
+    private String seatDeviceMark;
+    private Integer seatSort;
+    private String employee;
+    private String jobNum;
+    private String wristStrapNum;
+    private Double bodyTemperature;
+    private Integer staticState;
+    private String createTime;
+
+    public String toSqlString() {
+        return "insert into MainSeatDeviceState(ID,FACTORYNAME,LINENAME,SEATNO,SEATDEVICENAME,SEATSORT,SEATDEVICEMARK," +
+                " EMPLOYEE,JOBNUM,WRISTSTRAPNUM,BODYTEMPERATURE,STATICSTATE,CREATETIME)" +
+                " values (" + id + ",'" + factoryName + "','" + lineName + "'," + seatNo + ",'" + seatDeviceName + "',"+seatSort+",'" + seatDeviceMark + "'"
+                +  ",'"+employee+"','"+jobNum+"','"+wristStrapNum+"',"+bodyTemperature+",'"+staticState+"',"
+                + (createTime != null ? "to_date('" + createTime + "','yyyy-MM-dd HH24:mi:ss')": "null")+")";
+    }
+}

+ 5 - 0
src/main/java/com/uas/eis/service/MESHelperService.java

@@ -47,4 +47,9 @@ public interface MESHelperService {
 
 	Map<Object, Object> getMainAllSnCode(String data);
 
+    Map<String, Object> saveSeatDevice(String json);
+
+	Map<String, Object> saveMachineDevice(String json);
+
+	Map<String, Object> saveCushionDevice(String json);
 }

+ 201 - 2
src/main/java/com/uas/eis/serviceImpl/MESHelperServiceImpl.java

@@ -3,8 +3,7 @@ package com.uas.eis.serviceImpl;
 import com.uas.eis.core.config.SpObserver;
 import com.uas.eis.dao.BaseDao;
 import com.uas.eis.dao.SqlRowList;
-import com.uas.eis.entity.ErrorMessage;
-import com.uas.eis.entity.HelperType;
+import com.uas.eis.entity.*;
 import com.uas.eis.exception.ApiSystemException;
 import com.uas.eis.sdk.entity.ApiResult;
 import com.uas.eis.service.MESDataService;
@@ -2202,7 +2201,207 @@ public class MESHelperServiceImpl implements MESHelperService {
 		return rmap;
 	}
 
+	/**
+	 *  增加对接静电数据
+	 * @param json
+	 * {
+	 *  "dataList": [
+	 *  {
+	 *  "id": 0,
+	 *  "factoryName": "",
+	 *  "lineName": "",
+	 *  "seatNo": 0,
+	 *  "seatDeviceName": "",
+	 *  "seatDeviceMark": "",
+	 *  "seatSort": 0,
+	 *  "employee": "",
+	 *  "jobNum": "",
+	 *  "wristStrapNum": "",
+	 *  "bodyTemperature": 0.0,
+	 *  "staticState": 0,
+	 *  "createTime": "2025-03-24 20:18:43"
+	 *  }
+	 *  ],
+	 *  "timestamp": 1742818758248,
+	 *  "sign": "F62A20ABA50F0E5D8095EAF7282CCF1F"
+	 * }
+	 * @return
+	 *
+	 * 接⼝秘钥secret R&XSMOQyRbDm2136sSTGWDRf ,⽤于下⾯接⼝加密签名
+	 *  "timestamp": 1742818758248,
+	 */
+	@Override
+	public Map<String, Object> saveSeatDevice(String json) {
+		Map<Object,Object> da = BaseUtil.parseFormStoreToMap(json);
+		Map<String,Object> rmap = new HashMap<>();
+		//校验时间戳
+        String err = checkTimeStamp(da);
+        if(null != err){
+			rmap.put("success",false);
+			rmap.put("code",500);
+			rmap.put("message",err);
+			rmap.put("data",null);
+			rmap.put("exceptionClazz",null);
+			return rmap;
+		}
+		if(!StringUtil.hasText(da.get("dataList"))){
+			rmap.put("success",false);
+			rmap.put("code",500);
+			rmap.put("message","静电数据集合dataList为空");
+			rmap.put("data",null);
+			rmap.put("exceptionClazz",null);
+			return rmap;
+		}
+		try {
+			MainSeatDevice device = FlexJsonUtil.fromJson(json,MainSeatDevice.class);
+			List<String> sqls = new ArrayList<>();
+			List<MainSeatDeviceState> states = device.getDataList();
+			for(MainSeatDeviceState state : states){
+				sqls.add(state.toSqlString());
+			}
+		    baseDao.execute(sqls);
+			rmap.put("success",true);
+			rmap.put("code",200);
+			rmap.put("message","请求成功");
+			return rmap;
+		}catch (Exception e){
+			e.printStackTrace();
+			rmap.put("success",false);
+			rmap.put("code",500);
+			rmap.put("message",e.getMessage().length()>1000?e.getMessage().substring(0,1000):e.getMessage() );
+			rmap.put("data",null);
+			rmap.put("exceptionClazz",null);
+            return rmap;
+		}
+	}
 
+	/**
+	 *增加对接机器数据
+	 * @param json
+	 * @return
+	 */
+	@Override
+	public Map<String, Object> saveMachineDevice(String json) {
+		Map<Object,Object> da = BaseUtil.parseFormStoreToMap(json);
+		Map<String,Object> rmap = new HashMap<>();
+		//校验时间戳
+		String err = checkTimeStamp(da);
+		if(null != err){
+			rmap.put("success",false);
+			rmap.put("code",500);
+			rmap.put("message",err);
+			rmap.put("data",null);
+			rmap.put("exceptionClazz",null);
+			return rmap;
+		}
+		if(!StringUtil.hasText(da.get("dataList"))){
+			rmap.put("success",false);
+			rmap.put("code",500);
+			rmap.put("message","机器数据集合dataList为空");
+			rmap.put("data",null);
+			rmap.put("exceptionClazz",null);
+			return rmap;
+		}
+		try {
+			MainMachineDevice device = FlexJsonUtil.fromJson(json,MainMachineDevice.class);
+			List<String> sqls = new ArrayList<>();
+			List<MainMachineDeviceState> states = device.getDataList();
+			for(MainMachineDeviceState state : states){
+				sqls.add(state.toSqlString());
+			}
+			baseDao.execute(sqls);
+			rmap.put("success",true);
+			rmap.put("code",200);
+			rmap.put("message","请求成功");
+			return rmap;
+		}catch (Exception e){
+			e.printStackTrace();
+			rmap.put("success",false);
+			rmap.put("code",500);
+			rmap.put("message",e.getMessage().length()>1000?e.getMessage().substring(0,1000):e.getMessage() );
+			rmap.put("data",null);
+			rmap.put("exceptionClazz",null);
+			return rmap;
+		}
+	}
+
+	/**
+	 * 增加对接台垫数据
+	 * @param json
+	 * @return
+	 */
+	@Override
+	public Map<String, Object> saveCushionDevice(String json) {
+		Map<Object,Object> da = BaseUtil.parseFormStoreToMap(json);
+		Map<String,Object> rmap = new HashMap<>();
+		//校验时间戳
+		String err = checkTimeStamp(da);
+		if(null != err){
+			rmap.put("success",false);
+			rmap.put("code",500);
+			rmap.put("message",err);
+			rmap.put("data",null);
+			rmap.put("exceptionClazz",null);
+			return rmap;
+		}
+		if(!StringUtil.hasText(da.get("dataList"))){
+			rmap.put("success",false);
+			rmap.put("code",500);
+			rmap.put("message","台垫数据集合dataList为空");
+			rmap.put("data",null);
+			rmap.put("exceptionClazz",null);
+			return rmap;
+		}
+		try {
+			MainCushionDevice device = FlexJsonUtil.fromJson(json,MainCushionDevice.class);
+			List<String> sqls = new ArrayList<>();
+			List<MainCushionDeviceState> states = device.getDataList();
+			for(MainCushionDeviceState state : states){
+				sqls.add(state.toSqlString());
+			}
+			baseDao.execute(sqls);
+			rmap.put("success",true);
+			rmap.put("code",200);
+			rmap.put("message","请求成功");
+			return rmap;
+		}catch (Exception e){
+			e.printStackTrace();
+			rmap.put("success",false);
+			rmap.put("code",500);
+			rmap.put("message",e.getMessage().length()>1000?e.getMessage().substring(0,1000):e.getMessage() );
+			rmap.put("data",null);
+			rmap.put("exceptionClazz",null);
+			return rmap;
+		}
+	}
+
+	/**  接⼝秘钥secret R&XSMOQyRbDm2136sSTGWDRf ,⽤于下⾯接⼝加密签名
+	 *  "timestamp": 1742818758248,
+	 *  当前系统13位毫秒级时间戳,⽤于校验签名,5分钟有效期
+	 *   "sign": "F62A20ABA50F0E5D8095EAF7282CCF1F"
+	 * 	  接⼝签名:
+	 * 	  1. 拼接字符串:timestamp={毫秒级时间戳}&secret={接⼝秘钥}
+	 * 	  2. 将第1步拼接后的字符串,进⾏MD5 加密,⽣成32位的16进制MD5字符串
+	 */
+	private String checkTimeStamp(Map<Object,Object> da){
+		if(!StringUtil.hasText(da.get("timestamp"))){
+			return "时间戳timestamp值为空";
+		}
+		if(!StringUtil.hasText(da.get("sign"))){
+			return "签名sign值为空";
+		}
+		if(System.currentTimeMillis()-Long.parseLong(da.get("timestamp").toString())>5*60*1000){
+			return "时间戳已失效,上传失败";
+		}
+		StringBuilder temp = new StringBuilder();
+		temp.append("timestamp=").append(da.get("timestamp")).append("&secret=").append("R&XSMOQyRbDm2136sSTGWDRf");
+		String sign = MD5Util.encrypt32Up(temp.toString()).toUpperCase();
+		System.out.println(sign);
+		if(!sign.equals(da.get("sign"))){
+            return "签名错误,请检查";
+		}
+		return null;
+	}
 	private Map<Object,Object> GetSnRepm(JSONObject map)
 	{
 		Map<Object, Object> rmap = new HashMap<Object, Object>();