ソースを参照

Merge branch 'master' of http://47.100.37.243:10080/ZHOU/yunsu

# Conflicts:
#	target/classes/main/resources/mapper/MouldEquipmentMapper.xml
#	target/classes/main/resources/mapper/MouldMapper.xml
5 年 前
コミット
8cee6c0c80

+ 8 - 1
cloud-model/src/main/java/com/hssx/cloudmodel/controller/MouldHistoryController.java

@@ -32,13 +32,20 @@ public class MouldHistoryController {
      * @param time 时间点 如:2019-02-15
      * @return
      */
-    @ApiOperation("获取云模盒的每日开合次数图 (时间/次数)")
+    @ApiOperation("获取云模盒的每日开合次数图 (时间/次数)")
     @RequestMapping("/openingAndClosingTimesChart")
     @ResponseBody
     public HttpRespMsg openingAndClosingTimesChart(String equipmentNo,String time){
         HttpRespMsg msg = mouldHistoryService.getOpeningAndClosingTimesChart(equipmentNo, time);
         return msg;
     }
+//    @ApiOperation("获取云模盒的每日开合次数图标 (时间/次数)")
+//    @RequestMapping("/openingAndClosingTimesChart")
+//    @ResponseBody
+//    public HttpRespMsg openingAndClosingTimesChart(String equipmentNo,String time){
+//        HttpRespMsg msg = mouldHistoryService.getOpeningAndClosingTimesChart(equipmentNo, time);
+//        return msg;
+//    }
 
 }
 

+ 121 - 0
cloud-model/src/main/java/com/hssx/cloudmodel/entity/MouldHistoryTime.java

@@ -0,0 +1,121 @@
+package com.hssx.cloudmodel.entity;
+
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2019-10-12
+ */
+public class MouldHistoryTime extends Model<MouldHistoryTime> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 模具上次的记录id
+     */
+    @TableField("history_id")
+    private Long historyId;
+
+    /**
+     * 第几次
+     */
+    @TableField("seq")
+    private Integer seq;
+
+    /**
+     * 合模时间
+     */
+    @TableField("close_time")
+    private LocalDateTime closeTime;
+
+    /**
+     * 开模时间
+     */
+    @TableField("open_time")
+    private LocalDateTime openTime;
+
+    /**
+     * 时间消耗,单位毫秒
+     */
+    @TableField("time_cost")
+    private Integer timeCost;
+
+    /**
+     * 云模盒设备编号
+     */
+    @TableField("equipment_no")
+    private String equipmentNo;
+
+
+    public Long getHistoryId() {
+        return historyId;
+    }
+
+    public void setHistoryId(Long historyId) {
+        this.historyId = historyId;
+    }
+
+    public Integer getSeq() {
+        return seq;
+    }
+
+    public void setSeq(Integer seq) {
+        this.seq = seq;
+    }
+
+    public LocalDateTime getCloseTime() {
+        return closeTime;
+    }
+
+    public void setCloseTime(LocalDateTime closeTime) {
+        this.closeTime = closeTime;
+    }
+
+    public LocalDateTime getOpenTime() {
+        return openTime;
+    }
+
+    public void setOpenTime(LocalDateTime openTime) {
+        this.openTime = openTime;
+    }
+
+    public Integer getTimeCost() {
+        return timeCost;
+    }
+
+    public void setTimeCost(Integer timeCost) {
+        this.timeCost = timeCost;
+    }
+
+    public String getEquipmentNo() {
+        return equipmentNo;
+    }
+
+    public void setEquipmentNo(String equipmentNo) {
+        this.equipmentNo = equipmentNo;
+    }
+
+    @Override
+    protected Serializable pkVal() {
+        return null;
+    }
+
+    @Override
+    public String toString() {
+        return "MouldHistoryTime{" +
+        "historyId=" + historyId +
+        ", seq=" + seq +
+        ", closeTime=" + closeTime +
+        ", openTime=" + openTime +
+        ", timeCost=" + timeCost +
+        ", equipmentNo=" + equipmentNo +
+        "}";
+    }
+}

+ 16 - 0
cloud-model/src/main/java/com/hssx/cloudmodel/mapper/MouldHistoryTimeMapper.java

@@ -0,0 +1,16 @@
+package com.hssx.cloudmodel.mapper;
+
+import com.hssx.cloudmodel.entity.MouldHistoryTime;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2019-10-12
+ */
+public interface MouldHistoryTimeMapper extends BaseMapper<MouldHistoryTime> {
+
+}

+ 16 - 0
cloud-model/src/main/java/com/hssx/cloudmodel/service/MouldHistoryTimeService.java

@@ -0,0 +1,16 @@
+package com.hssx.cloudmodel.service;
+
+import com.hssx.cloudmodel.entity.MouldHistoryTime;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2019-10-12
+ */
+public interface MouldHistoryTimeService extends IService<MouldHistoryTime> {
+
+}

+ 20 - 0
cloud-model/src/main/java/com/hssx/cloudmodel/service/impl/MouldHistoryTimeServiceImpl.java

@@ -0,0 +1,20 @@
+package com.hssx.cloudmodel.service.impl;
+
+import com.hssx.cloudmodel.entity.MouldHistoryTime;
+import com.hssx.cloudmodel.mapper.MouldHistoryTimeMapper;
+import com.hssx.cloudmodel.service.MouldHistoryTimeService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2019-10-12
+ */
+@Service
+public class MouldHistoryTimeServiceImpl extends ServiceImpl<MouldHistoryTimeMapper, MouldHistoryTime> implements MouldHistoryTimeService {
+
+}

+ 1 - 1
cloud-model/src/main/java/com/hssx/cloudmodel/util/CodeGenerator.java

@@ -204,7 +204,7 @@ public class CodeGenerator {
         //若想要生成的实体类继承某个Controller,则可打开下面注释。写上需要继承的Controller的位置即可
 //        strategy.setSuperControllerClass("com.baomidou.ant.common.BaseController");
         //此处user是表名,多个英文逗号分割
-        strategy.setInclude("mould_history");
+        strategy.setInclude("mould_history_time");
 //        strategy.setExclude();//数据库表全生成
 //        strategy.setInclude(scanner("user").split(","));//表名,多个英文逗号分割
         strategy.setControllerMappingHyphenStyle(true);

+ 20 - 0
cloud-model/src/main/resources/mapper/MouldHistoryTimeMapper.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.hssx.cloudmodel.mapper.MouldHistoryTimeMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.hssx.cloudmodel.entity.MouldHistoryTime">
+        <result column="history_id" property="historyId" />
+        <result column="seq" property="seq" />
+        <result column="close_time" property="closeTime" />
+        <result column="open_time" property="openTime" />
+        <result column="time_cost" property="timeCost" />
+        <result column="equipment_no" property="equipmentNo" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        history_id, seq, close_time, open_time, time_cost, equipment_no
+    </sql>
+
+</mapper>

+ 14 - 6
cloud-socket/src/com/js/kbt/controller/WeiXinUserInfoController.java

@@ -260,14 +260,16 @@ public class WeiXinUserInfoController {
 	 * 云平台下行配置数据包接口
 	 * lowPowerLimit 低电量报警限值:(1 字节,十六进制)如:1e=31
 	 * hotAlarmLimit 热报警限值:(1 字节,十六进制)如:50=80
+	 * isUse:0-停止,1-启动
 	 * equipmentNo 设备编号(可能是多个或者一个)多个以“,”隔开传  如:"123456"(单个),"123456,456878,123589"(多个)
 	 */
 	@RequestMapping("/setPacket")
-	public void bindAccount(HttpServletResponse response,Integer lowPowerLimit,Integer hotAlarmLimit,String equipmentNo) {
+	public void bindAccount(HttpServletResponse response,Integer isUse,Integer lowPowerLimit,Integer hotAlarmLimit,String equipmentNo) {
 		HttpRespMsg msg = new HttpRespMsg();
 		//16进制的转化
 		String lowPowerLimitStr = Integer.toHexString(lowPowerLimit);
 		String hotAlarmLimitStr = Integer.toHexString(hotAlarmLimit);
+		String isUseStr = "0"+Integer.toHexString(isUse);
 		System.out.println("lowPowerLimit"+lowPowerLimit+"hotAlarmLimit"+hotAlarmLimit);
 		String setPacketMessage = "";
 		MouldDownPacket mouldDownPacket = new MouldDownPacket();
@@ -279,6 +281,7 @@ public class WeiXinUserInfoController {
 			exp.createCriteria().andEquipmentNoEqualTo(string);
 			tExp.createCriteria().andEquipmentNoEqualTo(string);
 			TbMouldEquipment equipment = tbMouldEquipmentMapper.selectByExample(tExp).get(0);
+			equipment.setIsUse(isUse);
 			equipment.setHillNumber(lowPowerLimit+"%");
 			equipment.setTemperature(hotAlarmLimit);
 			//更新云模盒的报警温度和电量
@@ -286,14 +289,15 @@ public class WeiXinUserInfoController {
 			List<MouldDownPacket> list = mouldDownPacketMapper.selectByExample(exp);
 			if(list.size()>0){
 				mouldDownPacket = list.get(0);
-				setPacketMessage = downProcessMsg(lowPowerLimitStr,hotAlarmLimitStr);
+				setPacketMessage = downProcessMsg(lowPowerLimitStr,hotAlarmLimitStr,isUseStr);
 				mouldDownPacket.setPacketStr(setPacketMessage);
-				mouldDownPacket.setIsUse(0);
+				mouldDownPacket.setIsUse(isUse);
 				mouldDownPacketMapper.updateByPrimaryKey(mouldDownPacket);
 			}else{
-				setPacketMessage = downProcessMsg(lowPowerLimitStr,hotAlarmLimitStr);
+				setPacketMessage = downProcessMsg(lowPowerLimitStr,hotAlarmLimitStr,isUseStr);
 				mouldDownPacket.setEquipmentNo(equipmentNo);
 				mouldDownPacket.setPacketStr(setPacketMessage);
+				mouldDownPacket.setIsUse(isUse);
 				mouldDownPacketMapper.insertSelective(mouldDownPacket);
 			}
 			exp.clear();
@@ -310,7 +314,7 @@ public class WeiXinUserInfoController {
 	}
 	
 	// 下行配置数据包
-		private String downProcessMsg(String lowPowerLimit,String hotAlarmLimit) {
+		private String downProcessMsg(String lowPowerLimit,String hotAlarmLimit,String isUse) {
 			//"23"不解析
 			if("23".equals(lowPowerLimit)){
 				lowPowerLimit="24";
@@ -318,7 +322,10 @@ public class WeiXinUserInfoController {
 			if("23".equals(hotAlarmLimit)){
 				hotAlarmLimit="24";
 			}
-			String ret = "FA AF 00 07 02 1e 78 "+lowPowerLimit+" "+hotAlarmLimit+" 00 3C";
+			if("23".equals(isUse)){
+				isUse="24";
+			}
+			String ret = "FA AF 00 07 "+isUse+" 1e 78 "+lowPowerLimit+" "+hotAlarmLimit+" 00 3C";
 			ret = ret.replaceAll(" ", "");
 			String crcCode = CRC16Util.getCRC(ret);
 			System.out.println("ret===>"+ret);
@@ -390,6 +397,7 @@ public class WeiXinUserInfoController {
 //		}
 		
 		public static void main(String[] args) {
+			System.out.println(Integer.toHexString(1));
 			String ret = "D5 37";
 			String part = "FA AF 00 07 02 1e 78"+" 1e"+" "+"50"+" 00 3C"; 
 //			byte[] strToByte = strToByte(part);

+ 14 - 2
cloud-socket/src/com/js/kbt/socket/UserHandler.java

@@ -65,12 +65,13 @@ public class UserHandler extends SimpleChannelInboundHandler<String> {
 
 	@Override
 	protected void channelRead0(ChannelHandlerContext arg0, String arg1) {
+		String pack = "FAAF0007001e781e50003C37D5";
 		//校准时间
 		timeCalibration();
 		System.out.println("收到===" + arg1 + "\n");
 		String equipmentNo = processMsg(arg1);
 		//以下是配置下行数据
-		sendPackage(equipmentNo);
+//		sendPackage(equipmentNo);
 	}
 
 	private String processMsg(String input) {
@@ -99,6 +100,17 @@ public class UserHandler extends SimpleChannelInboundHandler<String> {
 		item.setVersion(version);
 		String status = input.substring(26 * 2, 27 * 2);
 		System.out.println("工作状态=" + status);
+		MouldDownPacketExample pExp = new MouldDownPacketExample();
+		pExp.createCriteria().andEquipmentNoEqualTo(deviceNum);
+		List<MouldDownPacket> packetList = mouldDownPacketMapper.selectByExample(pExp);
+		if(packetList.size()>0){
+			MouldDownPacket packet = packetList.get(0);
+			if(!("0"+packet.getIsUse()).equals(status)){
+				logger.info("开始下发数据包==>"+packet.getPacketStr());
+				sendMsg(packet.getPacketStr());
+			}
+			logger.info("判断是否开启或关闭已结束==>");
+		}
 		item.setStatus(Integer.decode("0x" + status).toString());
 		// 经度27-37
 		String longitude = getStringFromHexStr(input.substring(27 * 2, 38 * 2));
@@ -126,7 +138,6 @@ public class UserHandler extends SimpleChannelInboundHandler<String> {
 		item.setAlarm(Integer.decode("0x" + input.substring(64 * 2, 65 * 2)));
 		String str = input.substring(65 * 2, 69 * 2);
 		item.setRunCnt(reverseParseHex(str));
-
 		// 根据基站lac和ci获取经纬度
 		String api = "http://api.cellocation.com:81/cell/?mcc=460&mnc=0&lac=" + item.getGprsLac() + "&ci="
 				+ item.getGprsCi() + "&output=json";
@@ -166,6 +177,7 @@ public class UserHandler extends SimpleChannelInboundHandler<String> {
 				int timeCost = (int) (openTime.getTime() - closeTime.getTime());
 				time.setTimeCost(timeCost);
 				mouldHistoryTimeMapper.insertSelective(time);
+				logger.info("mouldHistory数据添加完毕");
 			}
 		} else {
 			logger.info("本次开合模次数==0");

+ 1 - 1
cloud-socket/src/com/js/kbt/util/CRC16Util.java

@@ -67,7 +67,7 @@ public class CRC16Util {
 //        System.out.println(getCRC("01 03 20 7F FF 7F FF 7F FF 7F FF 7F FF 7F FF 7F FF 7F FF 7F FF 7F FF 7F FF 7F FF 7F FF 7F FF 7F FF 7F FF"));
 //        System.out.println(getCRC("01 03 00 00 00 08"));
 //        System.out.println(getCRC("01 03 10 00 8F 02 4E 00 91 02 44 00 92 02 5A 00 8B 02 47"));
-    	String crc = getCRC("FA AF 00 07 02 1e 78"+" 1e"+" "+"50"+" 00 3C");
+    	String crc = getCRC("FA AF 00 07 00 1e 78"+" 1e"+" "+"50"+" 00 3C");
         System.out.println(crc);
     }
 }