Explorar o código

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

# Conflicts:
#	cloud-model/src/main/java/com/hssx/cloudmodel/service/impl/MouldFileServiceImpl.java
%!s(int64=5) %!d(string=hai) anos
pai
achega
eba2e0a56a

+ 1 - 0
cloud-model/src/main/java/com/hssx/cloudmodel/constant/Constant.java

@@ -2,6 +2,7 @@ package com.hssx.cloudmodel.constant;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.hssx.cloudmodel.util.HttpKit;
 import com.hssx.cloudmodel.util.HttpRespMsg;
 import com.hssx.cloudmodel.util.WechatTemplateMessage;

+ 1 - 1
cloud-socket/src/com/js/kbt/UserTempGenConfig.xml

@@ -11,7 +11,7 @@
     <javaModelGenerator targetPackage="com.js.kbt.model" targetProject="cloud-socket" />
     <sqlMapGenerator targetPackage="com.js.kbt.mapper" targetProject="cloud-socket" />
     <javaClientGenerator targetPackage="com.js.kbt.mapper" targetProject="cloud-socket" type="XMLMAPPER" />
-    <table schema="cloud_model" tableName="mould_hoding" >
+    <table schema="cloud_model" tableName="mould_down_packet" >
     	<generatedKey column="id" identity="true" sqlStatement="SELECT LAST_INSERT_ID()"/>
     </table>
 <!--     <table schema="cloud_model" tableName="tb_mould_equipment" > -->

+ 82 - 2
cloud-socket/src/com/js/kbt/controller/WeiXinUserInfoController.java

@@ -2,6 +2,7 @@ package com.js.kbt.controller;
 
 import java.io.IOException;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import javax.annotation.Resource;
@@ -19,7 +20,11 @@ import org.springframework.web.servlet.ModelAndView;
 import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
 import com.alibaba.fastjson.JSONObject;
+import com.js.kbt.mapper.MouldDownPacketMapper;
 import com.js.kbt.mapper.TbUserMapper;
+import com.js.kbt.model.MouldDownPacket;
+import com.js.kbt.model.MouldDownPacketExample;
+import com.js.kbt.model.PacketMessage;
 import com.js.kbt.model.TbUser;
 import com.js.kbt.model.TbUserExample;
 import com.js.kbt.util.MD5Util;
@@ -39,6 +44,10 @@ public class WeiXinUserInfoController {
 	private HttpServletRequest request;
 	@Resource(name = "tbUserMapper")
 	private TbUserMapper tbUserMapper;
+	@Resource(name = "packetMessage")
+	private PacketMessage packetMessage;
+	@Resource(name = "mouldDownPacketMapper")
+	private MouldDownPacketMapper mouldDownPacketMapper;
 
 //	@Autowired
 //	private WeiXinPlatformService weiXinPlatformService;
@@ -111,7 +120,6 @@ public class WeiXinUserInfoController {
 		} else {
 			msg.setError("账号密码错误");
 		}
-		
 		response.setContentType("application/json");
 		response.setCharacterEncoding("UTF-8");
 		try {
@@ -193,7 +201,7 @@ public class WeiXinUserInfoController {
 		}
 		return weixinUserInfo;
 	}
-
+	
 	/**
 	 * 进行用户授权,获取到需要的授权字段,比如openId
 	 * 
@@ -244,4 +252,76 @@ public class WeiXinUserInfoController {
 
 		return result;
 	}
+	
+	/**
+	 * 云平台下行配置数据包接口
+	 * lowPowerLimit 低电量报警限值:(1 字节,十六进制)如:1e
+	 * hotAlarmLimit 热报警限值:(1 字节,十六进制)如:50
+	 * equipmentNo 设备编号
+	 */
+	@RequestMapping("/setPacket")
+	public void bindAccount(HttpServletResponse response,String lowPowerLimit,String hotAlarmLimit,String equipmentNo) {
+		HttpRespMsg msg = new HttpRespMsg();
+		String setPacketMessage = "";
+		MouldDownPacket mouldDownPacket = new MouldDownPacket();
+		MouldDownPacketExample exp = new MouldDownPacketExample();
+		exp.createCriteria().andEquipmentNoEqualTo(equipmentNo);
+		List<MouldDownPacket> list = mouldDownPacketMapper.selectByExample(exp);
+		if(list.size()>0){
+			mouldDownPacket = list.get(0);
+			setPacketMessage = downProcessMsg(lowPowerLimit,hotAlarmLimit);
+			mouldDownPacket.setPacketStr(setPacketMessage);
+			mouldDownPacket.setIsUse(0);
+			mouldDownPacketMapper.updateByPrimaryKey(mouldDownPacket);
+			
+		}else{
+			setPacketMessage = downProcessMsg(lowPowerLimit,hotAlarmLimit);
+			mouldDownPacket.setEquipmentNo(equipmentNo);
+			mouldDownPacket.setPacketStr(setPacketMessage);
+			mouldDownPacketMapper.insertSelective(mouldDownPacket);
+		}
+		response.setContentType("application/json");
+		response.setCharacterEncoding("UTF-8");
+		try {
+			response.getWriter().println(msg.toJSONStr());
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+	}
+	
+	// 下行配置数据包
+		private String downProcessMsg(String lowPowerLimit,String hotAlarmLimit) {
+			//"23"不解析
+			if("23".equals(lowPowerLimit)){
+				lowPowerLimit="24";
+			}
+			if("23".equals(hotAlarmLimit)){
+				hotAlarmLimit="24";
+			}
+			String ret = "FA AF 00 07 02 1e 78 lowPowerLimit hotAlarmLimit 00 3C";
+			ret.replace("lowPowerLimit", lowPowerLimit);
+			ret.replace("hotAlarmLimit", hotAlarmLimit);
+			ret.replaceAll(" ", "");
+			//16 位 CRC 校验(低位在前;高位在后)
+			int crc = reverseParseHex(ret);
+			String crcString = crc + "";
+			ret = ret + crcString;
+			return ret;
+		}
+		
+		/**
+		 * 低位在前的16进制解析
+		 * 
+		 * @param rHex
+		 * @return
+		 */
+		public static int reverseParseHex(String rHex) {
+			int size = rHex.length() / 2;
+			StringBuilder sb = new StringBuilder();
+			for (int i = 0; i < size; i++) {
+				sb.append(rHex.substring((size - i - 1) * 2, (size - i) * 2));
+			}
+			String str = sb.toString();
+			return Integer.parseInt(str, 16);
+		}
 }

+ 96 - 0
cloud-socket/src/com/js/kbt/mapper/MouldDownPacketMapper.java

@@ -0,0 +1,96 @@
+package com.js.kbt.mapper;
+
+import com.js.kbt.model.MouldDownPacket;
+import com.js.kbt.model.MouldDownPacketExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface MouldDownPacketMapper {
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table mould_down_packet
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    long countByExample(MouldDownPacketExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table mould_down_packet
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    int deleteByExample(MouldDownPacketExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table mould_down_packet
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    int deleteByPrimaryKey(Integer id);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table mould_down_packet
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    int insert(MouldDownPacket record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table mould_down_packet
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    int insertSelective(MouldDownPacket record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table mould_down_packet
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    List<MouldDownPacket> selectByExample(MouldDownPacketExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table mould_down_packet
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    MouldDownPacket selectByPrimaryKey(Integer id);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table mould_down_packet
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    int updateByExampleSelective(@Param("record") MouldDownPacket record, @Param("example") MouldDownPacketExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table mould_down_packet
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    int updateByExample(@Param("record") MouldDownPacket record, @Param("example") MouldDownPacketExample example);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table mould_down_packet
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    int updateByPrimaryKeySelective(MouldDownPacket record);
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table mould_down_packet
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    int updateByPrimaryKey(MouldDownPacket record);
+}

+ 286 - 0
cloud-socket/src/com/js/kbt/mapper/MouldDownPacketMapper.xml

@@ -0,0 +1,286 @@
+<?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.js.kbt.mapper.MouldDownPacketMapper">
+  <resultMap id="BaseResultMap" type="com.js.kbt.model.MouldDownPacket">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Oct 09 18:15:27 CST 2019.
+    -->
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="equipment_no" jdbcType="VARCHAR" property="equipmentNo" />
+    <result column="packet_str" jdbcType="VARCHAR" property="packetStr" />
+    <result column="indate" jdbcType="TIMESTAMP" property="indate" />
+    <result column="is_use" jdbcType="INTEGER" property="isUse" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Oct 09 18:15:27 CST 2019.
+    -->
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Oct 09 18:15:27 CST 2019.
+    -->
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Oct 09 18:15:27 CST 2019.
+    -->
+    id, equipment_no, packet_str, indate, is_use
+  </sql>
+  <select id="selectByExample" parameterType="com.js.kbt.model.MouldDownPacketExample" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Oct 09 18:15:27 CST 2019.
+    -->
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from mould_down_packet
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Oct 09 18:15:27 CST 2019.
+    -->
+    select 
+    <include refid="Base_Column_List" />
+    from mould_down_packet
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Oct 09 18:15:27 CST 2019.
+    -->
+    delete from mould_down_packet
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.js.kbt.model.MouldDownPacketExample">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Oct 09 18:15:27 CST 2019.
+    -->
+    delete from mould_down_packet
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.js.kbt.model.MouldDownPacket">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Oct 09 18:15:27 CST 2019.
+    -->
+    <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
+      SELECT LAST_INSERT_ID()
+    </selectKey>
+    insert into mould_down_packet (equipment_no, packet_str, indate, 
+      is_use)
+    values (#{equipmentNo,jdbcType=VARCHAR}, #{packetStr,jdbcType=VARCHAR}, #{indate,jdbcType=TIMESTAMP}, 
+      #{isUse,jdbcType=INTEGER})
+  </insert>
+  <insert id="insertSelective" parameterType="com.js.kbt.model.MouldDownPacket">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Oct 09 18:15:27 CST 2019.
+    -->
+    <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
+      SELECT LAST_INSERT_ID()
+    </selectKey>
+    insert into mould_down_packet
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="equipmentNo != null">
+        equipment_no,
+      </if>
+      <if test="packetStr != null">
+        packet_str,
+      </if>
+      <if test="indate != null">
+        indate,
+      </if>
+      <if test="isUse != null">
+        is_use,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="equipmentNo != null">
+        #{equipmentNo,jdbcType=VARCHAR},
+      </if>
+      <if test="packetStr != null">
+        #{packetStr,jdbcType=VARCHAR},
+      </if>
+      <if test="indate != null">
+        #{indate,jdbcType=TIMESTAMP},
+      </if>
+      <if test="isUse != null">
+        #{isUse,jdbcType=INTEGER},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.js.kbt.model.MouldDownPacketExample" resultType="java.lang.Long">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Oct 09 18:15:27 CST 2019.
+    -->
+    select count(*) from mould_down_packet
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Oct 09 18:15:27 CST 2019.
+    -->
+    update mould_down_packet
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=INTEGER},
+      </if>
+      <if test="record.equipmentNo != null">
+        equipment_no = #{record.equipmentNo,jdbcType=VARCHAR},
+      </if>
+      <if test="record.packetStr != null">
+        packet_str = #{record.packetStr,jdbcType=VARCHAR},
+      </if>
+      <if test="record.indate != null">
+        indate = #{record.indate,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.isUse != null">
+        is_use = #{record.isUse,jdbcType=INTEGER},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Oct 09 18:15:27 CST 2019.
+    -->
+    update mould_down_packet
+    set id = #{record.id,jdbcType=INTEGER},
+      equipment_no = #{record.equipmentNo,jdbcType=VARCHAR},
+      packet_str = #{record.packetStr,jdbcType=VARCHAR},
+      indate = #{record.indate,jdbcType=TIMESTAMP},
+      is_use = #{record.isUse,jdbcType=INTEGER}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.js.kbt.model.MouldDownPacket">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Oct 09 18:15:27 CST 2019.
+    -->
+    update mould_down_packet
+    <set>
+      <if test="equipmentNo != null">
+        equipment_no = #{equipmentNo,jdbcType=VARCHAR},
+      </if>
+      <if test="packetStr != null">
+        packet_str = #{packetStr,jdbcType=VARCHAR},
+      </if>
+      <if test="indate != null">
+        indate = #{indate,jdbcType=TIMESTAMP},
+      </if>
+      <if test="isUse != null">
+        is_use = #{isUse,jdbcType=INTEGER},
+      </if>
+    </set>
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.js.kbt.model.MouldDownPacket">
+    <!--
+      WARNING - @mbg.generated
+      This element is automatically generated by MyBatis Generator, do not modify.
+      This element was generated on Wed Oct 09 18:15:27 CST 2019.
+    -->
+    update mould_down_packet
+    set equipment_no = #{equipmentNo,jdbcType=VARCHAR},
+      packet_str = #{packetStr,jdbcType=VARCHAR},
+      indate = #{indate,jdbcType=TIMESTAMP},
+      is_use = #{isUse,jdbcType=INTEGER}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+</mapper>

+ 170 - 0
cloud-socket/src/com/js/kbt/model/MouldDownPacket.java

@@ -0,0 +1,170 @@
+package com.js.kbt.model;
+
+import java.util.Date;
+
+public class MouldDownPacket {
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column mould_down_packet.id
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    private Integer id;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column mould_down_packet.equipment_no
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    private String equipmentNo;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column mould_down_packet.packet_str
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    private String packetStr;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column mould_down_packet.indate
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    private Date indate;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column mould_down_packet.is_use
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    private Integer isUse;
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column mould_down_packet.id
+     *
+     * @return the value of mould_down_packet.id
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    public Integer getId() {
+        return id;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column mould_down_packet.id
+     *
+     * @param id the value for mould_down_packet.id
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column mould_down_packet.equipment_no
+     *
+     * @return the value of mould_down_packet.equipment_no
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    public String getEquipmentNo() {
+        return equipmentNo;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column mould_down_packet.equipment_no
+     *
+     * @param equipmentNo the value for mould_down_packet.equipment_no
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    public void setEquipmentNo(String equipmentNo) {
+        this.equipmentNo = equipmentNo;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column mould_down_packet.packet_str
+     *
+     * @return the value of mould_down_packet.packet_str
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    public String getPacketStr() {
+        return packetStr;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column mould_down_packet.packet_str
+     *
+     * @param packetStr the value for mould_down_packet.packet_str
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    public void setPacketStr(String packetStr) {
+        this.packetStr = packetStr;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column mould_down_packet.indate
+     *
+     * @return the value of mould_down_packet.indate
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    public Date getIndate() {
+        return indate;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column mould_down_packet.indate
+     *
+     * @param indate the value for mould_down_packet.indate
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    public void setIndate(Date indate) {
+        this.indate = indate;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method returns the value of the database column mould_down_packet.is_use
+     *
+     * @return the value of mould_down_packet.is_use
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    public Integer getIsUse() {
+        return isUse;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method sets the value of the database column mould_down_packet.is_use
+     *
+     * @param isUse the value for mould_down_packet.is_use
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    public void setIsUse(Integer isUse) {
+        this.isUse = isUse;
+    }
+}

+ 623 - 0
cloud-socket/src/com/js/kbt/model/MouldDownPacketExample.java

@@ -0,0 +1,623 @@
+package com.js.kbt.model;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class MouldDownPacketExample {
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table mould_down_packet
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    protected String orderByClause;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table mould_down_packet
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    protected boolean distinct;
+
+    /**
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database table mould_down_packet
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    protected List<Criteria> oredCriteria;
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table mould_down_packet
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    public MouldDownPacketExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table mould_down_packet
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table mould_down_packet
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table mould_down_packet
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table mould_down_packet
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table mould_down_packet
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table mould_down_packet
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table mould_down_packet
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table mould_down_packet
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table mould_down_packet
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    /**
+     * This method was generated by MyBatis Generator.
+     * This method corresponds to the database table mould_down_packet
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    /**
+     * This class was generated by MyBatis Generator.
+     * This class corresponds to the database table mould_down_packet
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<Criterion>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andIdIsNull() {
+            addCriterion("id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIsNotNull() {
+            addCriterion("id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdEqualTo(Integer value) {
+            addCriterion("id =", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualTo(Integer value) {
+            addCriterion("id <>", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThan(Integer value) {
+            addCriterion("id >", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
+            addCriterion("id >=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThan(Integer value) {
+            addCriterion("id <", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualTo(Integer value) {
+            addCriterion("id <=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIn(List<Integer> values) {
+            addCriterion("id in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotIn(List<Integer> values) {
+            addCriterion("id not in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdBetween(Integer value1, Integer value2) {
+            addCriterion("id between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotBetween(Integer value1, Integer value2) {
+            addCriterion("id not between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andEquipmentNoIsNull() {
+            addCriterion("equipment_no is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andEquipmentNoIsNotNull() {
+            addCriterion("equipment_no is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andEquipmentNoEqualTo(String value) {
+            addCriterion("equipment_no =", value, "equipmentNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andEquipmentNoNotEqualTo(String value) {
+            addCriterion("equipment_no <>", value, "equipmentNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andEquipmentNoGreaterThan(String value) {
+            addCriterion("equipment_no >", value, "equipmentNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andEquipmentNoGreaterThanOrEqualTo(String value) {
+            addCriterion("equipment_no >=", value, "equipmentNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andEquipmentNoLessThan(String value) {
+            addCriterion("equipment_no <", value, "equipmentNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andEquipmentNoLessThanOrEqualTo(String value) {
+            addCriterion("equipment_no <=", value, "equipmentNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andEquipmentNoLike(String value) {
+            addCriterion("equipment_no like", value, "equipmentNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andEquipmentNoNotLike(String value) {
+            addCriterion("equipment_no not like", value, "equipmentNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andEquipmentNoIn(List<String> values) {
+            addCriterion("equipment_no in", values, "equipmentNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andEquipmentNoNotIn(List<String> values) {
+            addCriterion("equipment_no not in", values, "equipmentNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andEquipmentNoBetween(String value1, String value2) {
+            addCriterion("equipment_no between", value1, value2, "equipmentNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andEquipmentNoNotBetween(String value1, String value2) {
+            addCriterion("equipment_no not between", value1, value2, "equipmentNo");
+            return (Criteria) this;
+        }
+
+        public Criteria andPacketStrIsNull() {
+            addCriterion("packet_str is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPacketStrIsNotNull() {
+            addCriterion("packet_str is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPacketStrEqualTo(String value) {
+            addCriterion("packet_str =", value, "packetStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andPacketStrNotEqualTo(String value) {
+            addCriterion("packet_str <>", value, "packetStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andPacketStrGreaterThan(String value) {
+            addCriterion("packet_str >", value, "packetStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andPacketStrGreaterThanOrEqualTo(String value) {
+            addCriterion("packet_str >=", value, "packetStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andPacketStrLessThan(String value) {
+            addCriterion("packet_str <", value, "packetStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andPacketStrLessThanOrEqualTo(String value) {
+            addCriterion("packet_str <=", value, "packetStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andPacketStrLike(String value) {
+            addCriterion("packet_str like", value, "packetStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andPacketStrNotLike(String value) {
+            addCriterion("packet_str not like", value, "packetStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andPacketStrIn(List<String> values) {
+            addCriterion("packet_str in", values, "packetStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andPacketStrNotIn(List<String> values) {
+            addCriterion("packet_str not in", values, "packetStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andPacketStrBetween(String value1, String value2) {
+            addCriterion("packet_str between", value1, value2, "packetStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andPacketStrNotBetween(String value1, String value2) {
+            addCriterion("packet_str not between", value1, value2, "packetStr");
+            return (Criteria) this;
+        }
+
+        public Criteria andIndateIsNull() {
+            addCriterion("indate is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIndateIsNotNull() {
+            addCriterion("indate is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIndateEqualTo(Date value) {
+            addCriterion("indate =", value, "indate");
+            return (Criteria) this;
+        }
+
+        public Criteria andIndateNotEqualTo(Date value) {
+            addCriterion("indate <>", value, "indate");
+            return (Criteria) this;
+        }
+
+        public Criteria andIndateGreaterThan(Date value) {
+            addCriterion("indate >", value, "indate");
+            return (Criteria) this;
+        }
+
+        public Criteria andIndateGreaterThanOrEqualTo(Date value) {
+            addCriterion("indate >=", value, "indate");
+            return (Criteria) this;
+        }
+
+        public Criteria andIndateLessThan(Date value) {
+            addCriterion("indate <", value, "indate");
+            return (Criteria) this;
+        }
+
+        public Criteria andIndateLessThanOrEqualTo(Date value) {
+            addCriterion("indate <=", value, "indate");
+            return (Criteria) this;
+        }
+
+        public Criteria andIndateIn(List<Date> values) {
+            addCriterion("indate in", values, "indate");
+            return (Criteria) this;
+        }
+
+        public Criteria andIndateNotIn(List<Date> values) {
+            addCriterion("indate not in", values, "indate");
+            return (Criteria) this;
+        }
+
+        public Criteria andIndateBetween(Date value1, Date value2) {
+            addCriterion("indate between", value1, value2, "indate");
+            return (Criteria) this;
+        }
+
+        public Criteria andIndateNotBetween(Date value1, Date value2) {
+            addCriterion("indate not between", value1, value2, "indate");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsUseIsNull() {
+            addCriterion("is_use is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsUseIsNotNull() {
+            addCriterion("is_use is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsUseEqualTo(Integer value) {
+            addCriterion("is_use =", value, "isUse");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsUseNotEqualTo(Integer value) {
+            addCriterion("is_use <>", value, "isUse");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsUseGreaterThan(Integer value) {
+            addCriterion("is_use >", value, "isUse");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsUseGreaterThanOrEqualTo(Integer value) {
+            addCriterion("is_use >=", value, "isUse");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsUseLessThan(Integer value) {
+            addCriterion("is_use <", value, "isUse");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsUseLessThanOrEqualTo(Integer value) {
+            addCriterion("is_use <=", value, "isUse");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsUseIn(List<Integer> values) {
+            addCriterion("is_use in", values, "isUse");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsUseNotIn(List<Integer> values) {
+            addCriterion("is_use not in", values, "isUse");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsUseBetween(Integer value1, Integer value2) {
+            addCriterion("is_use between", value1, value2, "isUse");
+            return (Criteria) this;
+        }
+
+        public Criteria andIsUseNotBetween(Integer value1, Integer value2) {
+            addCriterion("is_use not between", value1, value2, "isUse");
+            return (Criteria) this;
+        }
+    }
+
+    /**
+     * This class was generated by MyBatis Generator.
+     * This class corresponds to the database table mould_down_packet
+     *
+     * @mbg.generated do_not_delete_during_merge Wed Oct 09 18:15:27 CST 2019
+     */
+    public static class Criteria extends GeneratedCriteria {
+
+        protected Criteria() {
+            super();
+        }
+    }
+
+    /**
+     * This class was generated by MyBatis Generator.
+     * This class corresponds to the database table mould_down_packet
+     *
+     * @mbg.generated Wed Oct 09 18:15:27 CST 2019
+     */
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

+ 18 - 0
cloud-socket/src/com/js/kbt/model/PacketMessage.java

@@ -0,0 +1,18 @@
+package com.js.kbt.model;
+
+import org.springframework.stereotype.Service;
+
+@Service("packetMessage")
+public class PacketMessage {
+	private String message;
+
+	public String getMessage() {
+		return message;
+	}
+
+	public void setMessage(String message) {
+		this.message = message;
+	}
+	
+
+}

+ 29 - 79
cloud-socket/src/com/js/kbt/socket/UserHandler.java

@@ -13,16 +13,20 @@ import org.springframework.stereotype.Service;
 
 import com.alibaba.fastjson.JSONObject;
 import com.aliyuncs.http.HttpRequest;
+import com.js.kbt.mapper.MouldDownPacketMapper;
 import com.js.kbt.mapper.MouldHistoryMapper;
 import com.js.kbt.mapper.MouldHistoryTimeMapper;
 import com.js.kbt.mapper.MouldHodingMapper;
 import com.js.kbt.mapper.TbFactoryMapper;
 import com.js.kbt.mapper.TbMouldEquipmentMapper;
 import com.js.kbt.mapper.TbMouldMapper;
+import com.js.kbt.model.MouldDownPacket;
+import com.js.kbt.model.MouldDownPacketExample;
 import com.js.kbt.model.MouldHistory;
 import com.js.kbt.model.MouldHistoryTime;
 import com.js.kbt.model.MouldHistoryTimeExample;
 import com.js.kbt.model.MouldHoding;
+import com.js.kbt.model.PacketMessage;
 import com.js.kbt.model.TbMould;
 import com.js.kbt.model.TbMouldEquipment;
 import com.js.kbt.model.TbMouldEquipmentExample;
@@ -43,7 +47,7 @@ public class UserHandler extends SimpleChannelInboundHandler<String> {
 	private static final Logger logger = Logger.getLogger(UserHandler.class);
 
 	private ChannelHandlerContext ctx;
-
+	
 	@Resource
 	private MouldHistoryMapper mouldHistoryMapper;
 	@Resource
@@ -56,18 +60,20 @@ public class UserHandler extends SimpleChannelInboundHandler<String> {
 	private TbFactoryMapper tbFactoryMapper;
 	@Resource
 	private MouldHodingMapper mouldHodingMapper;
+	@Resource
+	private MouldDownPacketMapper mouldDownPacketMapper;
 
 	@Override
 	protected void channelRead0(ChannelHandlerContext arg0, String arg1) {
 		System.out.println("收到===" + arg1 + "\n");
-		String ret = processMsg(arg1);
+		String equipmentNo = processMsg(arg1);
 		//以下是配置下行数据
-//		ret = downProcessMsg(arg1);
-		// sendMsg(ret);
+		sendPackage(equipmentNo);
 	}
 
 	private String processMsg(String input) {
 		String ret = "FA AF 00 07 02 1e 78 1e 50 00 3C";
+		ret.replaceAll(" ", "");
 		logger.info("=====接收到======" + input);
 		if (!input.startsWith("FAAF")) {
 			logger.info("非云模盒消息,不处理");
@@ -177,87 +183,29 @@ public class UserHandler extends SimpleChannelInboundHandler<String> {
 		} else {
 			avgTime = totalTime / list.size();
 		}
-
 		handleModLogic(item, avgTime);
-		return ret;
+		//返回设备编号
+		return deviceNum;
 	}
-
-	// 下行配置数据包
-	private String downProcessMsg(String input) {
-
-		String ret = "FA AF 00 07 02 1e 78 1e 50 00 3C";
-		logger.info("=====接收到======" + input);
-		if (!input.startsWith("FAAF")) {
-			logger.info("非云模盒消息,不处理");
-			return ret;
-		}
-		MouldHoding hoding = new MouldHoding();
-		
-		/**
-		 每次发送的下行数据均为 13 字节,若起始寄存器地址为 0x02,
-		则寄存器 0、寄存器 1 这两个寄存器的值不被模块读取;
-		但是服务器仍然需要发送一个任意值占位,否则数据会混乱;
-		*/
-		//to do
-		
-		// 抽取模块工作允许值 工作允许:0-停止 1-开始 2-清除开合总次数并开始 3-关机
-		String enablePart = input.substring(4 * 2, 5 * 2);
-		if(enablePart.equals("23")){
-			enablePart="24";
-		}
-		System.out.println("模块工作允许值=" + enablePart);
-		String enable = getStringFromHexStr(enablePart);
-		System.out.println("模块工作允许值" + enable);
-		hoding.setEnable(Integer.decode(enable));
-		// 工作忙状态上报周期:单位(分钟)
-		String uploadCycleWorkPart = input.substring(5 * 2, 6 * 2);
-		if(uploadCycleWorkPart.equals("23")){
-			uploadCycleWorkPart="24";
-		}
-		System.out.println("工作忙状态上报周期=" + uploadCycleWorkPart);
-		String uploadCycleWork = getStringFromHexStr(uploadCycleWorkPart);
-		System.out.println("工作忙状态上报周期" + uploadCycleWork);
-		hoding.setUploadcycleWork(Integer.decode(uploadCycleWork));
-		// 空闲状态上报周期:单位(分钟)
-		String uploadCycleFreePart = input.substring(6 * 2, 7 * 2);
-		if(uploadCycleFreePart.equals("23")){
-			uploadCycleFreePart="24";
-		}
-		System.out.println("空闲状态上报周期=" + uploadCycleFreePart);
-		String uploadCycleFree = getStringFromHexStr(uploadCycleFreePart);
-		System.out.println("空闲状态上报周期" + uploadCycleFree);
-		// 低电量报警限值:单位(百分数,0-100%)
-		String lowPowerLimitPart = input.substring(7 * 2, 8 * 2);
-		if(lowPowerLimitPart.equals("23")){
-			lowPowerLimitPart="24";
+	
+	public void sendPackage(String equipmentNo){
+		if(equipmentNo.indexOf("FAAF") != -1){
+			return;
 		}
-		System.out.println("低电量报警限值=" + lowPowerLimitPart);
-		String lowPowerLimit = getStringFromHexStr(lowPowerLimitPart);
-		System.out.println("低电量报警限值" + lowPowerLimit);
-		hoding.setLowpowerlimit(lowPowerLimit + "%");
-		// 热报警限值:单位(度)
-		String hotAlarmLimitPart = input.substring(8 * 2, 9 * 2);
-		if(hotAlarmLimitPart.equals("23")){
-			hotAlarmLimitPart="24";
-		}
-		System.out.println("热报警限值=" + hotAlarmLimitPart);
-		String hotAlarmLimit = getStringFromHexStr(hotAlarmLimitPart);
-		System.out.println("热报警限值" + hotAlarmLimit);
-		hoding.setHotalarmlimit(Integer.decode(hotAlarmLimit));
-		// 由工作状态转换到非工作状态用的时间(0-255 分钟)
-		String timeCountPart = input.substring(9 * 2, 10 * 2);
-		if(timeCountPart.equals("23")){
-			timeCountPart="24";
+		MouldDownPacketExample exp = new MouldDownPacketExample();
+		exp.createCriteria().andEquipmentNoEqualTo(equipmentNo);
+		List<MouldDownPacket> list = mouldDownPacketMapper.selectByExample(exp);
+		if(list.size()>0){
+			MouldDownPacket packet = list.get(0);
+			if(0==packet.getIsUse()){
+				logger.info("开始下发数据包==>"+packet.getPacketStr());
+				sendMsg(packet.getPacketStr());
+			}
 		}
-		System.out.println("工作状态转换到非工作状态用的时间=" + timeCountPart);
-		String timeCount = getStringFromHexStr(timeCountPart);
-		System.out.println("工作状态转换到非工作状态用的时间" + timeCount);
-		hoding.setHotalarmlimit(Integer.decode(timeCount));
-		// 存入数据库
-		mouldHodingMapper.insertSelective(hoding);
-		return ret;
 	}
 
+	
+
 	private void handleModLogic(MouldHistory item, int avgTime) {
 		TbMouldEquipmentExample meqExp = new TbMouldEquipmentExample();
 		meqExp.createCriteria().andEquipmentNoEqualTo(item.getEquipmentNo());
@@ -485,10 +433,12 @@ public class UserHandler extends SimpleChannelInboundHandler<String> {
 				MouldHistoryTime time = new MouldHistoryTime();
 				time.setSeq(pos + 1);
 				Date closeTime = parseDate(input, start, pos, 0);
+				System.out.println(closeTime);
 				time.setCloseTime(closeTime);
 				// 开模时间
 				Date openTime = parseDate(input, start, pos, 6);
 				time.setOpenTime(openTime);
+				System.out.println(openTime);
 				int timeCost = (int) (openTime.getTime() - closeTime.getTime());
 				time.setTimeCost(timeCost);
 			}

+ 1 - 0
cloud-socket/src/jdbc.properties

@@ -1,3 +1,4 @@
+#classPath=D:/model/cloud-socket/WebContent/WEB-INF/lib/mysql-connector-java-5.1.31-bin.jar
 classPath=D:/workspace/yunsu/cloud-socket/WebContent/WEB-INF/lib/mysql-connector-java-5.1.31-bin.jar
 driver=com.mysql.jdbc.Driver
 url=jdbc:mysql://118.190.47.230:3306/cloud_model?autoReconnect=true&rewriteBatchedStatements=TRUE&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF-8