瀏覽代碼

手环数据获取。

zhaomiao 4 年之前
父節點
當前提交
b3f29f6c06

+ 35 - 0
src/main/java/com/gyee/frame/common/quartz/task/BraceletPushTask.java

@@ -0,0 +1,35 @@
+package com.gyee.frame.common.quartz.task;
+
+import com.gyee.frame.service.app.bracelet.BraceletService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+@Component("braceletPushTask")
+public class BraceletPushTask {
+    @Autowired
+    private BraceletService braceletService;
+    /**
+     * 无参的任务
+     */
+    public void braceletPushTask() throws Exception {
+        braceletService.braceletPushTask();//调用list方法完成对 key :"weatherProphet_1" ,路径"weather/weatherProphet_1"的推送
+        //System.out.println("我已执行");
+    }
+
+
+    /**
+     * 有参任务
+     * 目前仅执行常见的数据类型  Integer Long  带L  string  带 ''  bool Double 带 d
+     * @param a
+     * @param b
+     *
+     */
+    public void runTask2(Integer a,Long b,String c,Boolean d,Double e)
+    {
+        //List<TsysUser> list=  tsysUserMapper.selectByExample(new TsysUserExample());
+        //System.err.println("用户查询num:"+list.size());
+        System.out.println("正在执行定时任务,带多个参数的方法"+a+"   "+b+" "+c+"  "+d+" "+e+"执行时间:"+new Date().toLocaleString());
+    }
+}

+ 2 - 2
src/main/java/com/gyee/frame/controller/app/TargetdetailController.java

@@ -1,4 +1,4 @@
-package com.gyee.frame.controller.app;
+package com.gyee.frame.controller.app.TargetDetail;
 
 import com.gyee.frame.netty.websocket.util.SocketToolController;
 import com.gyee.frame.service.app.targetdetail.TargetdetailService;
@@ -25,7 +25,7 @@ public class TargetdetailController extends SocketToolController {
     @ResponseBody
     @RequestMapping("/targetdetail_target")
     public String targetdetail(HttpServletRequest httpServletRequest,String pointKey) throws Exception {
-        String remoteAddr = httpServletRequest.getRemoteAddr();
+            String remoteAddr = httpServletRequest.getRemoteAddr();
         Map<String, String> pointMap = TargetdetailService.targetdetail_target_pointMap;
         pointMap.put(remoteAddr,pointKey);
         TargetdetailService.targetdetail_target_pointMap = pointMap;

+ 42 - 0
src/main/java/com/gyee/frame/controller/app/bracelet/BraceletController.java

@@ -0,0 +1,42 @@
+package com.gyee.frame.controller.app.bracelet;
+
+import com.gyee.frame.netty.websocket.util.SocketToolController;
+import com.gyee.frame.service.app.bracelet.BraceletService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@Controller
+@RequestMapping("/bracelet")
+public class BraceletController extends SocketToolController {
+    @Autowired
+    private BraceletService braceletService;
+    @ResponseBody
+    @RequestMapping("/bracelet")
+    public String bracelet(HttpServletRequest httpServletRequest, String beginDate, String endDate) throws Exception {
+        String remoteAddr = httpServletRequest.getRemoteAddr();
+        Map<String, List<String>> pointMap = BraceletService.bracelet_pointMap;
+        List<String> list = new ArrayList<>();
+        list.add(beginDate);
+        list.add(endDate);
+        pointMap.put(remoteAddr,list);
+        BraceletService.bracelet_pointMap = pointMap;
+        return remoteAddr;
+    }
+
+    @ResponseBody
+    @RequestMapping("/close_bracelet")
+    public String close_bracelet(HttpServletRequest httpServletRequest,String pointKey) throws Exception {
+        String remoteAddr = httpServletRequest.getRemoteAddr();
+        Map<String, List<String>> pointMap = BraceletService.bracelet_pointMap;
+        pointMap.remove(remoteAddr);
+        BraceletService.bracelet_pointMap = pointMap;
+        return remoteAddr;
+    }
+}

+ 151 - 0
src/main/java/com/gyee/frame/controller/gen/ShbraceletpointController.java

@@ -0,0 +1,151 @@
+package com.gyee.frame.controller.gen;
+
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import com.github.pagehelper.PageInfo;
+import com.gyee.frame.common.base.BaseController;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.model.auto.Shbraceletpoint;
+import com.gyee.frame.model.custom.TableSplitResult;
+import com.gyee.frame.model.custom.Tablepar;
+import com.gyee.frame.model.custom.TitleVo;
+import com.gyee.frame.service.ShbraceletpointService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+@Controller
+@RequestMapping("ShbraceletpointController")
+@Api(value = "")
+public class ShbraceletpointController extends BaseController{
+	
+	private String prefix = "gen/shbraceletpoint";
+	@Autowired
+	private ShbraceletpointService shbraceletpointService;
+	
+	@GetMapping("view")
+	@RequiresPermissions("gen:shbraceletpoint:view")
+    public String view(ModelMap model)
+    {	
+		String str="";
+		setTitle(model, new TitleVo("列表", str+"管理", true,"欢迎进入"+str+"页面", true, false));
+        return prefix + "/list";
+    }
+	
+	//@Log(title = "集合查询", action = "111")
+	@PostMapping("list")
+	@RequiresPermissions("gen:shbraceletpoint:list")
+	@ResponseBody
+	public Object list(Tablepar tablepar,String searchText){
+		PageInfo<Shbraceletpoint> page=shbraceletpointService.list(tablepar,searchText) ; 
+		TableSplitResult<Shbraceletpoint> result=new TableSplitResult<Shbraceletpoint>(page.getPageNum(), page.getTotal(), page.getList()); 
+		return  result;
+	}
+	
+	/**
+     * 新增
+     */
+
+    @GetMapping("/add")
+    public String add(ModelMap modelMap)
+    {
+        return prefix + "/add";
+    }
+	
+	//@Log(title = "新增", action = "111")
+	@PostMapping("add")
+	@RequiresPermissions("gen:shbraceletpoint:add")
+	@ResponseBody
+	public AjaxResult add(Shbraceletpoint shbraceletpoint){
+		int b=shbraceletpointService.insertSelective(shbraceletpoint);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 删除用户
+	 * @param ids
+	 * @return
+	 */
+	//@Log(title = "删除", action = "111")
+	@PostMapping("remove")
+	@RequiresPermissions("gen:shbraceletpoint:remove")
+	@ResponseBody
+	public AjaxResult remove(String ids){
+		int b=shbraceletpointService.deleteByPrimaryKey(ids);
+		if(b>0){
+			return success();
+		}else{
+			return error();
+		}
+	}
+	
+	/**
+	 * 检查用户
+	 * @param tsysUser
+	 * @return
+	 */
+	@PostMapping("checkNameUnique")
+	@ResponseBody
+	public int checkNameUnique(Shbraceletpoint shbraceletpoint){
+		int b=shbraceletpointService.checkNameUnique(shbraceletpoint);
+		if(b>0){
+			return 1;
+		}else{
+			return 0;
+		}
+	}
+	
+	
+	/**
+	 * 修改跳转
+	 * @param id
+	 * @param mmap
+	 * @return
+	 */
+	@GetMapping("/edit/{id}")
+    public String edit(@PathVariable("id") String id, ModelMap mmap)
+    {
+        mmap.put("Shbraceletpoint", shbraceletpointService.selectByPrimaryKey(id));
+
+        return prefix + "/edit";
+    }
+	
+	/**
+     * 修改保存
+     */
+    //@Log(title = "修改", action = "111")
+    @RequiresPermissions("gen:shbraceletpoint:edit")
+    @PostMapping("/edit")
+    @ResponseBody
+    public AjaxResult editSave(Shbraceletpoint record)
+    {
+        return toAjax(shbraceletpointService.updateByPrimaryKeySelective(record));
+    }
+
+    
+    /**
+   	 * 根据主键查询
+   	 * 
+   	 * @param id
+   	 * @param mmap
+   	 * @return
+   	 */
+   	@PostMapping("/get/{id}")
+   	@ApiOperation(value = "根据id查询唯一", notes = "根据id查询唯一")
+   	public Shbraceletpoint edit(@PathVariable("id") String id) {
+   		return shbraceletpointService.selectByPrimaryKey(id);
+   	}
+    
+
+	
+}

+ 38 - 0
src/main/java/com/gyee/frame/mapper/auto/ShbraceletpointMapper.java

@@ -0,0 +1,38 @@
+package com.gyee.frame.mapper.auto;
+
+import com.gyee.frame.model.auto.Shbraceletpoint;
+import com.gyee.frame.model.auto.ShbraceletpointExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ *  ShbraceletpointMapper
+ * @author gyee_自动生成
+ * @email 1@qq.com
+ * @date 2020-05-20 19:07:48
+ */
+public interface ShbraceletpointMapper {
+      	   	      	      	      	      	      	      	      	      
+    long countByExample(ShbraceletpointExample example);
+
+    int deleteByExample(ShbraceletpointExample example);
+		
+    int deleteByPrimaryKey(String id);
+		
+    int insert(Shbraceletpoint record);
+
+    int insertSelective(Shbraceletpoint record);
+
+    List<Shbraceletpoint> selectByExample(ShbraceletpointExample example);
+		
+    Shbraceletpoint selectByPrimaryKey(String id);
+		
+    int updateByExampleSelective(@Param("record") Shbraceletpoint record, @Param("example") ShbraceletpointExample example);
+
+    int updateByExample(@Param("record") Shbraceletpoint record, @Param("example") ShbraceletpointExample example); 
+		
+    int updateByPrimaryKeySelective(Shbraceletpoint record);
+
+    int updateByPrimaryKey(Shbraceletpoint record);
+  	  	
+}

+ 144 - 0
src/main/java/com/gyee/frame/model/auto/Shbraceletpoint.java

@@ -0,0 +1,144 @@
+package com.gyee.frame.model.auto;
+
+import java.io.Serializable;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.lang.Long;
+
+/**
+ *  Shbraceletpoint 
+ * @author gyee_自动生成
+ * @email 1@qq.com
+ * @date 2020-05-20 19:07:48
+ */
+ @ApiModel(value="Shbraceletpoint", description="")
+public class Shbraceletpoint implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+	
+		
+	/**  **/
+	@ApiModelProperty(value = "")
+private String id;
+		
+	/**  **/
+    @ApiModelProperty(name = "'key'",required=true)
+private String key;
+		
+	/**  **/
+	@ApiModelProperty(value = "") 
+private String value;
+		
+	/**  **/
+	@ApiModelProperty(value = "") 
+private Long ts;
+		
+	/**  **/
+	@ApiModelProperty(value = "") 
+private String status;
+		
+	/**  **/
+	@ApiModelProperty(value = "") 
+private String type;
+		
+	/**  **/
+	@ApiModelProperty(value = "") 
+private String time;
+		
+	/**  **/
+    @ApiModelProperty(name = "'describe'",required=true)
+private String describe;
+		
+		
+	public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+	 
+			
+	public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+	 
+			
+	public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+	 
+			
+	public Long getTs() {
+        return ts;
+    }
+
+    public void setTs(Long ts) {
+        this.ts = ts;
+    }
+	 
+			
+	public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+	 
+			
+	public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+	 
+			
+	public String getTime() {
+        return time;
+    }
+
+    public void setTime(String time) {
+        this.time = time;
+    }
+	 
+			
+	public String getDescribe() {
+        return describe;
+    }
+
+    public void setDescribe(String describe) {
+        this.describe = describe;
+    }
+	 
+			
+	public Shbraceletpoint() {
+        super();
+    }
+    
+																																										
+	public Shbraceletpoint(String id,String key,String value,Long ts,String status,String type,String time,String describe) {
+	
+		this.id = id;
+		this.key = key;
+		this.value = value;
+		this.ts = ts;
+		this.status = status;
+		this.type = type;
+		this.time = time;
+		this.describe = describe;
+		
+	}
+	
+}

+ 777 - 0
src/main/java/com/gyee/frame/model/auto/ShbraceletpointExample.java

@@ -0,0 +1,777 @@
+package com.gyee.frame.model.auto;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ *  ShbraceletpointExample
+ * @author gyee_自动生成
+ * @email 1@qq.com
+ * @date 2020-05-20 19:07:48
+ */
+public class ShbraceletpointExample {
+
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    public ShbraceletpointExample() {
+        oredCriteria = new ArrayList<Criteria>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    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(String value) {
+            addCriterion("id =", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualTo(String value) {
+            addCriterion("id <>", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThan(String value) {
+            addCriterion("id >", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualTo(String value) {
+            addCriterion("id >=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThan(String value) {
+            addCriterion("id <", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualTo(String value) {
+            addCriterion("id <=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLike(String value) {
+            addCriterion("id like", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotLike(String value) {
+            addCriterion("id not like", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIn(List<String> values) {
+            addCriterion("id in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotIn(List<String> values) {
+            addCriterion("id not in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdBetween(String value1, String value2) {
+            addCriterion("id between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotBetween(String value1, String value2) {
+            addCriterion("id not between", value1, value2, "id");
+            return (Criteria) this;
+        }
+        
+			
+        public Criteria andKeyIsNull() {
+            addCriterion("key is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andKeyIsNotNull() {
+            addCriterion("key is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andKeyEqualTo(String value) {
+            addCriterion("key =", value, "key");
+            return (Criteria) this;
+        }
+
+        public Criteria andKeyNotEqualTo(String value) {
+            addCriterion("key <>", value, "key");
+            return (Criteria) this;
+        }
+
+        public Criteria andKeyGreaterThan(String value) {
+            addCriterion("key >", value, "key");
+            return (Criteria) this;
+        }
+
+        public Criteria andKeyGreaterThanOrEqualTo(String value) {
+            addCriterion("key >=", value, "key");
+            return (Criteria) this;
+        }
+
+        public Criteria andKeyLessThan(String value) {
+            addCriterion("key <", value, "key");
+            return (Criteria) this;
+        }
+
+        public Criteria andKeyLessThanOrEqualTo(String value) {
+            addCriterion("key <=", value, "key");
+            return (Criteria) this;
+        }
+
+        public Criteria andKeyLike(String value) {
+            addCriterion("key like", value, "key");
+            return (Criteria) this;
+        }
+
+        public Criteria andKeyNotLike(String value) {
+            addCriterion("key not like", value, "key");
+            return (Criteria) this;
+        }
+
+        public Criteria andKeyIn(List<String> values) {
+            addCriterion("key in", values, "key");
+            return (Criteria) this;
+        }
+
+        public Criteria andKeyNotIn(List<String> values) {
+            addCriterion("key not in", values, "key");
+            return (Criteria) this;
+        }
+
+        public Criteria andKeyBetween(String value1, String value2) {
+            addCriterion("key between", value1, value2, "key");
+            return (Criteria) this;
+        }
+
+        public Criteria andKeyNotBetween(String value1, String value2) {
+            addCriterion("key not between", value1, value2, "key");
+            return (Criteria) this;
+        }
+        
+			
+        public Criteria andValueIsNull() {
+            addCriterion("value is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andValueIsNotNull() {
+            addCriterion("value is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andValueEqualTo(String value) {
+            addCriterion("value =", value, "value");
+            return (Criteria) this;
+        }
+
+        public Criteria andValueNotEqualTo(String value) {
+            addCriterion("value <>", value, "value");
+            return (Criteria) this;
+        }
+
+        public Criteria andValueGreaterThan(String value) {
+            addCriterion("value >", value, "value");
+            return (Criteria) this;
+        }
+
+        public Criteria andValueGreaterThanOrEqualTo(String value) {
+            addCriterion("value >=", value, "value");
+            return (Criteria) this;
+        }
+
+        public Criteria andValueLessThan(String value) {
+            addCriterion("value <", value, "value");
+            return (Criteria) this;
+        }
+
+        public Criteria andValueLessThanOrEqualTo(String value) {
+            addCriterion("value <=", value, "value");
+            return (Criteria) this;
+        }
+
+        public Criteria andValueLike(String value) {
+            addCriterion("value like", value, "value");
+            return (Criteria) this;
+        }
+
+        public Criteria andValueNotLike(String value) {
+            addCriterion("value not like", value, "value");
+            return (Criteria) this;
+        }
+
+        public Criteria andValueIn(List<String> values) {
+            addCriterion("value in", values, "value");
+            return (Criteria) this;
+        }
+
+        public Criteria andValueNotIn(List<String> values) {
+            addCriterion("value not in", values, "value");
+            return (Criteria) this;
+        }
+
+        public Criteria andValueBetween(String value1, String value2) {
+            addCriterion("value between", value1, value2, "value");
+            return (Criteria) this;
+        }
+
+        public Criteria andValueNotBetween(String value1, String value2) {
+            addCriterion("value not between", value1, value2, "value");
+            return (Criteria) this;
+        }
+        
+			
+        public Criteria andTsIsNull() {
+            addCriterion("ts is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTsIsNotNull() {
+            addCriterion("ts is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTsEqualTo(Long value) {
+            addCriterion("ts =", value, "ts");
+            return (Criteria) this;
+        }
+
+        public Criteria andTsNotEqualTo(Long value) {
+            addCriterion("ts <>", value, "ts");
+            return (Criteria) this;
+        }
+
+        public Criteria andTsGreaterThan(Long value) {
+            addCriterion("ts >", value, "ts");
+            return (Criteria) this;
+        }
+
+        public Criteria andTsGreaterThanOrEqualTo(Long value) {
+            addCriterion("ts >=", value, "ts");
+            return (Criteria) this;
+        }
+
+        public Criteria andTsLessThan(Long value) {
+            addCriterion("ts <", value, "ts");
+            return (Criteria) this;
+        }
+
+        public Criteria andTsLessThanOrEqualTo(Long value) {
+            addCriterion("ts <=", value, "ts");
+            return (Criteria) this;
+        }
+
+        public Criteria andTsLike(Long value) {
+            addCriterion("ts like", value, "ts");
+            return (Criteria) this;
+        }
+
+        public Criteria andTsNotLike(Long value) {
+            addCriterion("ts not like", value, "ts");
+            return (Criteria) this;
+        }
+
+        public Criteria andTsIn(List<Long> values) {
+            addCriterion("ts in", values, "ts");
+            return (Criteria) this;
+        }
+
+        public Criteria andTsNotIn(List<Long> values) {
+            addCriterion("ts not in", values, "ts");
+            return (Criteria) this;
+        }
+
+        public Criteria andTsBetween(Long value1, Long value2) {
+            addCriterion("ts between", value1, value2, "ts");
+            return (Criteria) this;
+        }
+
+        public Criteria andTsNotBetween(Long value1, Long value2) {
+            addCriterion("ts not between", value1, value2, "ts");
+            return (Criteria) this;
+        }
+        
+			
+        public Criteria andStatusIsNull() {
+            addCriterion("status is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusIsNotNull() {
+            addCriterion("status is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusEqualTo(String value) {
+            addCriterion("status =", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusNotEqualTo(String value) {
+            addCriterion("status <>", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusGreaterThan(String value) {
+            addCriterion("status >", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusGreaterThanOrEqualTo(String value) {
+            addCriterion("status >=", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusLessThan(String value) {
+            addCriterion("status <", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusLessThanOrEqualTo(String value) {
+            addCriterion("status <=", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusLike(String value) {
+            addCriterion("status like", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusNotLike(String value) {
+            addCriterion("status not like", value, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusIn(List<String> values) {
+            addCriterion("status in", values, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusNotIn(List<String> values) {
+            addCriterion("status not in", values, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusBetween(String value1, String value2) {
+            addCriterion("status between", value1, value2, "status");
+            return (Criteria) this;
+        }
+
+        public Criteria andStatusNotBetween(String value1, String value2) {
+            addCriterion("status not between", value1, value2, "status");
+            return (Criteria) this;
+        }
+        
+			
+        public Criteria andTypeIsNull() {
+            addCriterion("type is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeIsNotNull() {
+            addCriterion("type is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeEqualTo(String value) {
+            addCriterion("type =", value, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeNotEqualTo(String value) {
+            addCriterion("type <>", value, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeGreaterThan(String value) {
+            addCriterion("type >", value, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeGreaterThanOrEqualTo(String value) {
+            addCriterion("type >=", value, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeLessThan(String value) {
+            addCriterion("type <", value, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeLessThanOrEqualTo(String value) {
+            addCriterion("type <=", value, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeLike(String value) {
+            addCriterion("type like", value, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeNotLike(String value) {
+            addCriterion("type not like", value, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeIn(List<String> values) {
+            addCriterion("type in", values, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeNotIn(List<String> values) {
+            addCriterion("type not in", values, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeBetween(String value1, String value2) {
+            addCriterion("type between", value1, value2, "type");
+            return (Criteria) this;
+        }
+
+        public Criteria andTypeNotBetween(String value1, String value2) {
+            addCriterion("type not between", value1, value2, "type");
+            return (Criteria) this;
+        }
+        
+			
+        public Criteria andTimeIsNull() {
+            addCriterion("time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTimeIsNotNull() {
+            addCriterion("time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andTimeEqualTo(String value) {
+            addCriterion("time =", value, "time");
+            return (Criteria) this;
+        }
+
+        public Criteria andTimeNotEqualTo(String value) {
+            addCriterion("time <>", value, "time");
+            return (Criteria) this;
+        }
+
+        public Criteria andTimeGreaterThan(String value) {
+            addCriterion("time >", value, "time");
+            return (Criteria) this;
+        }
+
+        public Criteria andTimeGreaterThanOrEqualTo(String value) {
+            addCriterion("time >=", value, "time");
+            return (Criteria) this;
+        }
+
+        public Criteria andTimeLessThan(String value) {
+            addCriterion("time <", value, "time");
+            return (Criteria) this;
+        }
+
+        public Criteria andTimeLessThanOrEqualTo(String value) {
+            addCriterion("time <=", value, "time");
+            return (Criteria) this;
+        }
+
+        public Criteria andTimeLike(String value) {
+            addCriterion("time like", value, "time");
+            return (Criteria) this;
+        }
+
+        public Criteria andTimeNotLike(String value) {
+            addCriterion("time not like", value, "time");
+            return (Criteria) this;
+        }
+
+        public Criteria andTimeIn(List<String> values) {
+            addCriterion("time in", values, "time");
+            return (Criteria) this;
+        }
+
+        public Criteria andTimeNotIn(List<String> values) {
+            addCriterion("time not in", values, "time");
+            return (Criteria) this;
+        }
+
+        public Criteria andTimeBetween(String value1, String value2) {
+            addCriterion("time between", value1, value2, "time");
+            return (Criteria) this;
+        }
+
+        public Criteria andTimeNotBetween(String value1, String value2) {
+            addCriterion("time not between", value1, value2, "time");
+            return (Criteria) this;
+        }
+        
+			
+        public Criteria andDescribeIsNull() {
+            addCriterion("describe is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDescribeIsNotNull() {
+            addCriterion("describe is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andDescribeEqualTo(String value) {
+            addCriterion("describe =", value, "describe");
+            return (Criteria) this;
+        }
+
+        public Criteria andDescribeNotEqualTo(String value) {
+            addCriterion("describe <>", value, "describe");
+            return (Criteria) this;
+        }
+
+        public Criteria andDescribeGreaterThan(String value) {
+            addCriterion("describe >", value, "describe");
+            return (Criteria) this;
+        }
+
+        public Criteria andDescribeGreaterThanOrEqualTo(String value) {
+            addCriterion("describe >=", value, "describe");
+            return (Criteria) this;
+        }
+
+        public Criteria andDescribeLessThan(String value) {
+            addCriterion("describe <", value, "describe");
+            return (Criteria) this;
+        }
+
+        public Criteria andDescribeLessThanOrEqualTo(String value) {
+            addCriterion("describe <=", value, "describe");
+            return (Criteria) this;
+        }
+
+        public Criteria andDescribeLike(String value) {
+            addCriterion("describe like", value, "describe");
+            return (Criteria) this;
+        }
+
+        public Criteria andDescribeNotLike(String value) {
+            addCriterion("describe not like", value, "describe");
+            return (Criteria) this;
+        }
+
+        public Criteria andDescribeIn(List<String> values) {
+            addCriterion("describe in", values, "describe");
+            return (Criteria) this;
+        }
+
+        public Criteria andDescribeNotIn(List<String> values) {
+            addCriterion("describe not in", values, "describe");
+            return (Criteria) this;
+        }
+
+        public Criteria andDescribeBetween(String value1, String value2) {
+            addCriterion("describe between", value1, value2, "describe");
+            return (Criteria) this;
+        }
+
+        public Criteria andDescribeNotBetween(String value1, String value2) {
+            addCriterion("describe not between", value1, value2, "describe");
+            return (Criteria) this;
+        }
+        
+	}
+
+    public static class Criteria extends GeneratedCriteria {
+
+        protected Criteria() {
+            super();
+        }
+    }
+
+    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);
+        }
+    }
+}

+ 2 - 0
src/main/java/com/gyee/frame/netty/websocket/config/ConfigDetail.txt

@@ -29,5 +29,7 @@ sisConfigMap->targetdetail_target->"pageNumber_8","functionNumber_1"
 sisConfigMap->targetdetail_curve>"pageNumber_8","functionNumber_2"
 22.过去7天指标柱状图,指标名称targetdetail_histogram,包括过去7天该指标的数据,记录指标过去7天的数值
 sisConfigMap->targetdetail_histogram->"pageNumber_8","functionNumber_3"
+23.手环指标推送,指标名称braceletPushTask,包括人员的疲劳度,收缩血压,舒张血压,心跳频率,血氧浓度,步数,经度,纬度
+sisConfigMap->braceletPushTask->"pageNumber_9","functionNumber_1"
 
 

+ 150 - 0
src/main/java/com/gyee/frame/service/ShbraceletpointService.java

@@ -0,0 +1,150 @@
+package com.gyee.frame.service;
+
+import java.util.List;
+import java.util.Arrays;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.gyee.frame.common.base.BaseService;
+import com.gyee.frame.common.support.Convert;
+import com.gyee.frame.mapper.auto.ShbraceletpointMapper;
+import com.gyee.frame.model.auto.Shbraceletpoint;
+import com.gyee.frame.model.auto.ShbraceletpointExample;
+import com.gyee.frame.model.custom.Tablepar;
+import com.gyee.frame.util.SnowflakeIdWorker;
+
+/**
+ *  ShbraceletpointService
+ * @Title: ShbraceletpointService.java 
+ * @Package com.gyee.frame.service 
+ * @author gyee_自动生成
+ * @email 1@qq.com
+ * @date 2020-05-20 19:07:48  
+ **/
+@Service
+public class ShbraceletpointService implements BaseService<Shbraceletpoint, ShbraceletpointExample>{
+	@Autowired
+	private ShbraceletpointMapper shbraceletpointMapper;
+
+
+
+		/**
+		 * 查询集合
+		 * @return
+		 */
+		public List<Shbraceletpoint> shbraceletpointList(Long beginDateTs,Long endDateTs){
+			ShbraceletpointExample testExample=new ShbraceletpointExample();
+			testExample.setOrderByClause("ts ASC");
+
+
+				testExample.createCriteria().andTsGreaterThanOrEqualTo(beginDateTs).andTsLessThanOrEqualTo(endDateTs);
+				List<Shbraceletpoint> shbraceletpointList = shbraceletpointMapper.selectByExample(testExample);
+
+
+			return shbraceletpointList;
+		}
+	/**
+	 * 分页查询
+	 * @return
+	 */
+	 public PageInfo<Shbraceletpoint> list(Tablepar tablepar,String name){
+	        ShbraceletpointExample testExample=new ShbraceletpointExample();
+	        testExample.setOrderByClause("id ASC");
+	        if(name!=null&&!"".equals(name)){
+	        	//testExample.createCriteria().andTsLike("%"+name+"%");
+	        }
+
+	        PageHelper.startPage(tablepar.getPageNum(), tablepar.getPageSize());
+	        List<Shbraceletpoint> list= shbraceletpointMapper.selectByExample(testExample);
+	        PageInfo<Shbraceletpoint> pageInfo = new PageInfo<Shbraceletpoint>(list);
+	        return  pageInfo;
+	 }
+
+	@Override
+	public int deleteByPrimaryKey(String ids) {
+				
+			List<String> lista=Convert.toListStrArray(ids);
+			ShbraceletpointExample example=new ShbraceletpointExample();
+			example.createCriteria().andIdIn(lista);
+			return shbraceletpointMapper.deleteByExample(example);
+			
+				
+	}
+	
+	
+	@Override
+	public Shbraceletpoint selectByPrimaryKey(String id) {
+				
+			return shbraceletpointMapper.selectByPrimaryKey(id);
+				
+	}
+
+	
+	@Override
+	public int updateByPrimaryKeySelective(Shbraceletpoint record) {
+		return shbraceletpointMapper.updateByPrimaryKeySelective(record);
+	}
+	
+	
+	/**
+	 * 添加
+	 */
+	@Override
+	public int insertSelective(Shbraceletpoint record) {
+				
+		//添加雪花主键id
+		record.setId(SnowflakeIdWorker.getUUID());
+			
+				
+		return shbraceletpointMapper.insertSelective(record);
+	}
+	
+	
+	@Override
+	public int updateByExampleSelective(Shbraceletpoint record, ShbraceletpointExample example) {
+		
+		return shbraceletpointMapper.updateByExampleSelective(record, example);
+	}
+
+	
+	@Override
+	public int updateByExample(Shbraceletpoint record, ShbraceletpointExample example) {
+		
+		return shbraceletpointMapper.updateByExample(record, example);
+	}
+
+	@Override
+	public List<Shbraceletpoint> selectByExample(ShbraceletpointExample example) {
+		
+		return shbraceletpointMapper.selectByExample(example);
+	}
+
+	
+	@Override
+	public long countByExample(ShbraceletpointExample example) {
+		
+		return shbraceletpointMapper.countByExample(example);
+	}
+
+	
+	@Override
+	public int deleteByExample(ShbraceletpointExample example) {
+		
+		return shbraceletpointMapper.deleteByExample(example);
+	}
+	
+	/**
+	 * 检查name
+	 * @param shbraceletpoint
+	 * @return
+	 */
+	public int checkNameUnique(Shbraceletpoint shbraceletpoint){
+		ShbraceletpointExample example=new ShbraceletpointExample();
+		example.createCriteria().andTsEqualTo(shbraceletpoint.getTs());
+		List<Shbraceletpoint> list=shbraceletpointMapper.selectByExample(example);
+		return list.size();
+	}
+
+
+}

+ 114 - 0
src/main/java/com/gyee/frame/service/app/bracelet/BraceletService.java

@@ -0,0 +1,114 @@
+package com.gyee.frame.service.app.bracelet;
+
+import com.gyee.frame.model.auto.Shbraceletpoint;
+import com.gyee.frame.model.custom.PointData;
+import com.gyee.frame.model.enumeration.Messagetype;
+import com.gyee.frame.netty.websocket.util.SocketToolService;
+import com.gyee.frame.service.ShbraceletpointService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
+
+@Service
+public class BraceletService extends SocketToolService {
+    public static Map<String, List<String>> bracelet_pointMap = new HashMap<>();
+    public static Map<String, Map<String, Map<String, List<Shbraceletpoint>>>> shbraceletpointMapMapMapList = new HashMap<>();
+    /*ip,  Y1-A0BC,  Y1-A0BC_PLD,*/
+    @Autowired
+    private ShbraceletpointService shbraceletpointService;
+    /*2020-05-01 12:13:11*/
+    private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+    public void braceletPushTask() throws Exception {
+        Set set = bracelet_pointMap.keySet();
+        Iterator<String> it = set.iterator();
+        Map<String, Double> pointDataMap = new HashMap();
+        while (it.hasNext()) {
+            String ip = it.next();
+            List<String> braceletDateList = bracelet_pointMap.get(ip);
+            String beginDate = braceletDateList.get(0);
+            String endDate = braceletDateList.get(1);
+
+            Long beginDateTs = sdf.parse(beginDate).getTime();
+            Long endDateTs = sdf.parse(endDate).getTime();
+
+            List<Shbraceletpoint> shbraceletpointList = shbraceletpointService.shbraceletpointList(beginDateTs, endDateTs);
+            /*Map<String,Map<String,List<Shbraceletpoint>>> deviceNameMap = new HashMap<>();
+            Map<String, List<Shbraceletpoint>> deviceMetricsNameMap = new HashMap<>();
+
+            *//*获取设备指标名称*//*
+            List<String> deviceMetricsName = shbraceletpointList.stream().map(Shbraceletpoint::getKey).collect(Collectors.toList());
+
+            for (int i = 0;i<deviceMetricsName.size();i++){
+                List<Shbraceletpoint> list = new ArrayList<>();
+                list.clear();
+                String metriceName = deviceMetricsName.get(i);
+                for (int j = 0;j<deviceMetricsName.size();j++) {
+                    String key = shbraceletpointList.get(j).getKey();
+                    if (metriceName.equals(key)) {
+                        Shbraceletpoint shbraceletpoint = shbraceletpointList.get(j);
+                        list.add(shbraceletpoint);
+                        deviceMetricsNameMap.put(metriceName, list);
+                    }
+                }
+            }
+
+            Map<String,Map<String, List<Shbraceletpoint>>>  deviceMap = new HashMap<>();
+            for(Shbraceletpoint shbraceletpoint1:shbraceletpointList){
+                String deviceName = shbraceletpoint1.getKey().split("_")[0];
+                deviceNameMap.put(deviceName,deviceMetricsNameMap);
+                Map<String,List<Shbraceletpoint>> listMap = new HashMap<>();
+                for(String key:deviceMetricsNameMap.keySet()){
+
+                    listMap.put(key, deviceMetricsNameMap.get(key));
+
+                    deviceNameMap.put(deviceName,listMap);
+                }
+
+            }*/
+            Map<String, Map<String, List<Shbraceletpoint>>> deviceNameMap = injectionMap(shbraceletpointList);
+            shbraceletpointMapMapMapList.put(ip,deviceNameMap);
+        }
+
+        this.pushToWeb("pageNumber_9", "functionNumber_1", shbraceletpointMapMapMapList, Messagetype.MESSAGE);
+    }
+    private  Map<String,Map<String,List<Shbraceletpoint>>> injectionMap(List<Shbraceletpoint> shbraceletpointList ){
+        Map<String,Map<String,List<Shbraceletpoint>>> deviceNameMap = new HashMap<>();/*设备名*/
+        Map<String, List<Shbraceletpoint>> deviceMetricsNameMap = new HashMap<>();/*设备指标*/
+
+        /*获取设备指标名称*/
+        List<String> deviceMetricsName = shbraceletpointList.stream().map(Shbraceletpoint::getKey).collect(Collectors.toList());
+
+        for (int i = 0;i<deviceMetricsName.size();i++){
+            List<Shbraceletpoint> list = new ArrayList<>();
+            list.clear();
+            String metriceName = deviceMetricsName.get(i);
+            for (int j = 0;j<deviceMetricsName.size();j++) {
+                String key = shbraceletpointList.get(j).getKey();
+                if (metriceName.equals(key)) {
+                    Shbraceletpoint shbraceletpoint = shbraceletpointList.get(j);
+                    list.add(shbraceletpoint);
+                    deviceMetricsNameMap.put(metriceName, list);
+                }
+            }
+        }
+
+        /*Map<String,Map<String, List<Shbraceletpoint>>>  deviceMap = new HashMap<>();*/
+        for(Shbraceletpoint shbraceletpoint1:shbraceletpointList){
+            String deviceName = shbraceletpoint1.getKey().split("_")[0];
+            deviceNameMap.put(deviceName,deviceMetricsNameMap);
+            Map<String,List<Shbraceletpoint>> listMap = new HashMap<>();
+            for(String key:deviceMetricsNameMap.keySet()){
+
+                listMap.put(key, deviceMetricsNameMap.get(key));
+
+                deviceNameMap.put(deviceName,listMap);
+            }
+
+        }
+        return deviceNameMap;
+    }
+}

+ 316 - 0
src/main/resources/mybatis/auto/ShbraceletpointMapper.xml

@@ -0,0 +1,316 @@
+<?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.gyee.frame.mapper.auto.ShbraceletpointMapper">
+  <resultMap id="BaseResultMap" type="com.gyee.frame.model.auto.Shbraceletpoint">
+    <result column="id" jdbcType="VARCHAR" property="id" />
+    <result column="key" jdbcType="VARCHAR" property="key" />
+    <result column="value" jdbcType="VARCHAR" property="value" />
+    <result column="ts" jdbcType="BIGINT" property="ts" />
+    <result column="status" jdbcType="VARCHAR" property="status" />
+    <result column="type" jdbcType="VARCHAR" property="type" />
+    <result column="time" jdbcType="VARCHAR" property="time" />
+    <result column="describe" jdbcType="VARCHAR" property="describe" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <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">
+    <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">
+	  	  	      	id,
+       	  	      	`key`,
+       	  	      	value,
+       	  	      	ts,
+       	  	      	status,
+       	  	      	type,
+       	  	      	time,
+       	  	    	`describe`
+       	</sql>
+  <select id="selectByExample" parameterType="com.gyee.frame.model.auto.ShbraceletpointExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from shbraceletpoint
+    <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.String" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from shbraceletpoint
+    where id = #{id,jdbcType=VARCHAR}
+  </select>
+
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
+    delete from shbraceletpoint
+    where id = #{id,jdbcType=VARCHAR}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.gyee.frame.model.auto.ShbraceletpointExample">
+    delete from shbraceletpoint
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  
+  <insert id="insert" parameterType="com.gyee.frame.model.auto.Shbraceletpoint">
+    insert into shbraceletpoint (
+      	  	       id,
+       	  	       key,
+       	  	       value,
+       	  	       ts,
+       	  	       status,
+       	  	       type,
+       	  	       time,
+       	  	    	  describe
+       	    )
+    values (
+	  	  	      	#{id,jdbcType=VARCHAR},
+       	  	      	#{key,jdbcType=VARCHAR},
+       	  	      	#{value,jdbcType=VARCHAR},
+       	  	      	#{ts,jdbcType=BIGINT},
+       	  	      	#{status,jdbcType=VARCHAR},
+       	  	      	#{type,jdbcType=VARCHAR},
+       	  	      	#{time,jdbcType=VARCHAR},
+       	  	    	  #{describe,jdbcType=VARCHAR}
+       	    )
+  </insert>
+  
+  <insert id="insertSelective" parameterType="com.gyee.frame.model.auto.Shbraceletpoint">
+    insert into shbraceletpoint
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+          
+      <if test="id != null">
+        id,
+      </if>
+      
+         
+      <if test="key != null">
+        key,
+      </if>
+      
+         
+      <if test="value != null">
+        value,
+      </if>
+      
+         
+      <if test="ts != null">
+        ts,
+      </if>
+      
+         
+      <if test="status != null">
+        status,
+      </if>
+      
+         
+      <if test="type != null">
+        type,
+      </if>
+      
+         
+      <if test="time != null">
+        time,
+      </if>
+      
+         
+      <if test="describe != null">
+        describe,
+      </if>
+      
+         </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+          <if test="id != null">
+        #{id,jdbcType=VARCHAR},
+      </if>
+          <if test="key != null">
+        #{key,jdbcType=VARCHAR},
+      </if>
+          <if test="value != null">
+        #{value,jdbcType=VARCHAR},
+      </if>
+          <if test="ts != null">
+        #{ts,jdbcType=BIGINT},
+      </if>
+          <if test="status != null">
+        #{status,jdbcType=VARCHAR},
+      </if>
+          <if test="type != null">
+        #{type,jdbcType=VARCHAR},
+      </if>
+          <if test="time != null">
+        #{time,jdbcType=VARCHAR},
+      </if>
+          <if test="describe != null">
+        #{describe,jdbcType=VARCHAR},
+      </if>
+        </trim>
+  </insert>
+  
+  <select id="countByExample" parameterType="com.gyee.frame.model.auto.ShbraceletpointExample" resultType="java.lang.Long">
+    select count(*) from shbraceletpoint
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  
+  <update id="updateByExampleSelective" parameterType="map">
+    update shbraceletpoint
+    <set>
+          <if test="record.id != null">
+        id = #{record.id,jdbcType=VARCHAR},
+      </if>
+          <if test="record.key != null">
+        key = #{record.key,jdbcType=VARCHAR},
+      </if>
+          <if test="record.value != null">
+        value = #{record.value,jdbcType=VARCHAR},
+      </if>
+          <if test="record.ts != null">
+        ts = #{record.ts,jdbcType=BIGINT},
+      </if>
+          <if test="record.status != null">
+        status = #{record.status,jdbcType=VARCHAR},
+      </if>
+          <if test="record.type != null">
+        type = #{record.type,jdbcType=VARCHAR},
+      </if>
+          <if test="record.time != null">
+        time = #{record.time,jdbcType=VARCHAR},
+      </if>
+          <if test="record.describe != null">
+        describe = #{record.describe,jdbcType=VARCHAR},
+      </if>
+         
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  
+  
+  <update id="updateByExample" parameterType="map">
+    update shbraceletpoint
+    set
+            	     	 id = #{record.id,jdbcType=VARCHAR},
+    	         	     	 key = #{record.key,jdbcType=VARCHAR},
+    	         	     	 value = #{record.value,jdbcType=VARCHAR},
+    	         	     	 ts = #{record.ts,jdbcType=BIGINT},
+    	         	     	 status = #{record.status,jdbcType=VARCHAR},
+    	         	     	 type = #{record.type,jdbcType=VARCHAR},
+    	         	     	 time = #{record.time,jdbcType=VARCHAR},
+    	         	     	 describe = #{record.describe,jdbcType=VARCHAR}
+    	         <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  
+  
+      <update id="updateByPrimaryKeySelective" parameterType="com.gyee.frame.model.auto.Shbraceletpoint">
+    update shbraceletpoint
+    <set>
+                          <if test="key != null">
+        key = #{key,jdbcType=VARCHAR},
+      </if>
+                      <if test="value != null">
+        value = #{value,jdbcType=VARCHAR},
+      </if>
+                      <if test="ts != null">
+        ts = #{ts,jdbcType=BIGINT},
+      </if>
+                      <if test="status != null">
+        status = #{status,jdbcType=VARCHAR},
+      </if>
+                      <if test="type != null">
+        type = #{type,jdbcType=VARCHAR},
+      </if>
+                      <if test="time != null">
+        time = #{time,jdbcType=VARCHAR},
+      </if>
+                      <if test="describe != null">
+        describe = #{describe,jdbcType=VARCHAR},
+      </if>
+              </set>
+    where 
+            id = #{id,jdbcType=VARCHAR}
+                                                                  
+  </update>
+
+      	      	   	      	   	      	   	      	   	      	   	      	   	      	   	      	
+
+  <update id="updateByPrimaryKey" parameterType="com.gyee.frame.model.auto.Shbraceletpoint">
+    update shbraceletpoint
+    set 
+             	        	    	 			key = #{key,jdbcType=VARCHAR},
+		     	        	    	 			value = #{value,jdbcType=VARCHAR},
+		     	        	    	 			ts = #{ts,jdbcType=BIGINT},
+		     	        	    	 			status = #{status,jdbcType=VARCHAR},
+		     	        	    	 			type = #{type,jdbcType=VARCHAR},
+		     	        	    	 			time = #{time,jdbcType=VARCHAR},
+		     	        	    	 			describe = #{describe,jdbcType=VARCHAR}
+		     	        where 
+            id = #{id,jdbcType=VARCHAR}
+                                                                    
+  </update>
+  
+                                            
+</mapper>

+ 187 - 0
src/main/resources/templates/gen/shbraceletpoint/add.html

@@ -0,0 +1,187 @@
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org" 
+      xmlns:sec="http://www.pollix.at/thymeleaf/shiro">
+<head th:replace="admin/common/html/tableHead :: head(~{::title},~{::link},~{::style})">
+
+<title th:text=${title}></title>
+<!-- 这儿引用单独的css link -->
+<!-- Ladda for Bootstrap 3按钮加载进度插件 -->
+<link rel="stylesheet" th:href="@{/static/admin/assets/js/button/ladda/ladda.min.css}">
+<!-- bootstrap-table表单样式 -->
+<link th:href="@{/static/admin/assets/js/bootstrap/css/bootstrap-table/bootstrap-table.min.css}" rel="stylesheet"/>
+<!-- 用户界面自定义css -->
+<link th:href="@{/static/admin/user/css/user-add.css}" rel="stylesheet"/>
+<style type="text/css"></style>
+</head>
+
+<body>
+
+<div class="content-wrap">
+	<div class="row">
+		<div class="col-sm-12">
+			<div class="nest" id="elementClose">
+				<div class="">
+				</div>
+				<div class="body-nest" id="element">
+					<div class="panel-body">
+						<form  class="form-horizontal m" id="form-add">
+						
+									<div class="form-group">
+										<label class="col-sm-3 control-label ">:</label>
+										<div class="col-sm-8">
+											<input class="form-control" type="text" id="key" name="key"/>
+										</div>
+									</div>
+									
+								
+									<div class="form-group">
+										<label class="col-sm-3 control-label ">:</label>
+										<div class="col-sm-8">
+											<input class="form-control" type="text" id="value" name="value"/>
+										</div>
+									</div>
+									
+								
+									<div class="form-group">
+										<label class="col-sm-3 control-label ">:</label>
+										<div class="col-sm-8">
+											<input class="form-control" type="text" id="ts" name="ts"/>
+										</div>
+									</div>
+									
+								
+									<div class="form-group">
+										<label class="col-sm-3 control-label ">:</label>
+										<div class="col-sm-8">
+											<input class="form-control" type="text" id="status" name="status"/>
+										</div>
+									</div>
+									
+								
+									<div class="form-group">
+										<label class="col-sm-3 control-label ">:</label>
+										<div class="col-sm-8">
+											<input class="form-control" type="text" id="type" name="type"/>
+										</div>
+									</div>
+									
+								
+									<div class="form-group">
+										<label class="col-sm-3 control-label ">:</label>
+										<div class="col-sm-8">
+											<input class="form-control" type="text" id="time" name="time"/>
+										</div>
+									</div>
+									
+								
+									<div class="form-group">
+										<label class="col-sm-3 control-label ">:</label>
+										<div class="col-sm-8">
+											<input class="form-control" type="text" id="describe" name="describe"/>
+										</div>
+									</div>
+									
+			
+									<div class="form-group">
+										<div class="form-control-static col-sm-offset-9">
+											<button type="submit" class="btn btn-primary">提交</button>
+											<button onclick="$.modal.close()" class="btn btn-danger" type="button">关闭</button>
+										</div>
+									</div>
+						 </form>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+</div>
+
+<!-- 通用js -->
+<div th:include="admin/common/html/js :: onload_js">
+   
+</div>
+<!-- bootstarp 表格 -->
+<script th:src="@{/static/admin/assets/js/bootstrap/js/bootstrap-table/bootstrap-table.min.js}" type="text/javascript"></script>
+<script th:src="@{/static/admin/assets/js/bootstrap/js/bootstrap-table/locale/bootstrap-table-zh-CN.min.js}" type="text/javascript"></script>
+<script th:src="@{/static/admin/assets/js/bootstrap/js/base_list.js}" type="text/javascript"></script>
+
+
+<!-- 弹窗 -->
+<script  th:src="@{/static/admin/assets/js/layer/layer.js}" type="text/javascript"></script>
+<!-- 遮罩层 -->
+<script  th:src="@{/static/admin/assets/js/blockUI/jquery.blockUI.js}" type="text/javascript"></script>
+<!-- jqueryForm序列化 -->
+<script  th:src="@{/static/js/jqueryFormSerializeJson.js}" type="text/javascript"></script>
+<script type="text/javascript">
+
+$(function(){
+	 $(".MyDate").datetimepicker({
+		 	format: "yyyy-mm-dd hh:00:00",
+	        startDate: new Date(),
+	        autoclose: true,
+	        todayBtn: true,
+	        language: 'zh-CN',
+	        initialDate:new Date(),
+	        minView: 1      
+	    });
+	
+})
+
+
+$("#form-add").validate({
+	rules:{
+		ts:{
+			required:true,
+			minlength: 2,
+			maxlength: 20,
+			remote: {
+                url: rootPath + "/ShbraceletpointController/checkNameUnique",
+                type: "post",
+                dataType: "json",
+                dataFilter: function(data, type) {
+                    if (data == "0")
+                    	return true;
+                    else 
+                    	return false;
+                }
+            }
+		}
+	},
+	messages: {
+        "ts": {
+            remote: "已经存在"
+        }
+    },
+	submitHandler:function(form){
+		add();
+	}
+});
+
+/**
+ * 用户添加方法
+ */
+function add() {
+	var dataFormJson=$("#form-add").serialize();
+	$.ajax({
+		cache : true,
+		type : "POST",
+		url : rootPath + "/ShbraceletpointController/add",
+		data : dataFormJson,
+		async : false,
+		error : function(request) {
+			$.modal.alertError("系统错误");
+		},
+		success : function(data) {
+			$.operate.saveSuccess(data);
+		}
+	});
+}
+
+
+</script>
+
+
+</body>
+
+
+</html>

+ 158 - 0
src/main/resources/templates/gen/shbraceletpoint/edit.html

@@ -0,0 +1,158 @@
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org" 
+      xmlns:sec="http://www.pollix.at/thymeleaf/shiro">
+<head th:replace="admin/common/html/tableHead :: tableHead(~{::title},~{::link},~{::style})">
+
+<title th:text=${title}></title>
+<!-- 这儿引用单独的css link -->
+<!-- Ladda for Bootstrap 3按钮加载进度插件 -->
+<link rel="stylesheet" th:href="@{/static/admin/assets/js/button/ladda/ladda.min.css}">
+<!-- bootstrap-table表单样式 -->
+<link th:href="@{/static/admin/assets/js/bootstrap/css/bootstrap-table/bootstrap-table.min.css}" rel="stylesheet"/>
+
+<!-- 用户界面自定义css -->
+<link th:href="@{/static/admin/user/css/user-add.css}" rel="stylesheet"/>
+<style type="text/css"></style>
+
+</head>
+
+<body>
+      	   	      	      	      	      	      	      	      	      
+<div class="content-wrap">
+	<div class="row">
+		<div class="col-sm-12">
+			<div class="nest" id="elementClose">
+				<div class="">
+				</div>
+				<div class="body-nest" id="element">
+					<div class="panel-body">
+						<form  class="form-horizontal m" id="form-edit" th:object="${Shbraceletpoint}">
+							<input id="id" name="id" type="hidden" th:field="*{id}"/>
+						
+									<div class="form-group">
+										<label class="col-sm-3 control-label ">:</label>
+										<div class="col-sm-8">
+											<input class="form-control" type="text" id="key" name="key" th:value="*{key}"/>
+										</div>
+									</div>
+
+								
+									<div class="form-group">
+										<label class="col-sm-3 control-label ">:</label>
+										<div class="col-sm-8">
+											<input class="form-control" type="text" id="value" name="value" th:value="*{value}"/>
+										</div>
+									</div>
+
+								
+									<div class="form-group">
+										<label class="col-sm-3 control-label ">:</label>
+										<div class="col-sm-8">
+											<input class="form-control" type="text" id="ts" name="ts" th:value="*{ts}"/>
+										</div>
+									</div>
+
+								
+									<div class="form-group">
+										<label class="col-sm-3 control-label ">:</label>
+										<div class="col-sm-8">
+											<input class="form-control" type="text" id="status" name="status" th:value="*{status}"/>
+										</div>
+									</div>
+
+								
+									<div class="form-group">
+										<label class="col-sm-3 control-label ">:</label>
+										<div class="col-sm-8">
+											<input class="form-control" type="text" id="type" name="type" th:value="*{type}"/>
+										</div>
+									</div>
+
+								
+									<div class="form-group">
+										<label class="col-sm-3 control-label ">:</label>
+										<div class="col-sm-8">
+											<input class="form-control" type="text" id="time" name="time" th:value="*{time}"/>
+										</div>
+									</div>
+
+								
+									<div class="form-group">
+										<label class="col-sm-3 control-label ">:</label>
+										<div class="col-sm-8">
+											<input class="form-control" type="text" id="describe" name="describe" th:value="*{describe}"/>
+										</div>
+									</div>
+
+			
+									<div class="form-group">
+										<div class="form-control-static col-sm-offset-9">
+											<button type="submit" class="btn btn-primary">提交</button>
+											<button onclick="$.modal.close()" class="btn btn-danger" type="button">关闭</button>
+										</div>
+									</div>
+						</form>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+</div>
+
+<!-- 通用js -->
+<div th:include="admin/common/html/js :: onload_js">
+   
+</div>
+<!-- bootstarp 表格 -->
+<script th:src="@{/static/admin/assets/js/bootstrap/js/bootstrap-table/bootstrap-table.min.js}" type="text/javascript"></script>
+<script th:src="@{/static/admin/assets/js/bootstrap/js/bootstrap-table/locale/bootstrap-table-zh-CN.min.js}" type="text/javascript"></script>
+<script th:src="@{/static/admin/assets/js/bootstrap/js/base_list.js}" type="text/javascript"></script>
+
+
+<!-- 弹窗 -->
+<script th:src="@{/static/admin/assets/js/layer/layer.js}" type="text/javascript"></script>
+<!-- 遮罩层 -->
+<script th:src="@{/static/admin/assets/js/blockUI/jquery.blockUI.js}" type="text/javascript"></script>
+<script type="text/javascript">
+$(function(){
+	 $(".MyDate").datetimepicker({
+		 	format: "yyyy-mm-dd hh:00:00",
+	        startDate: new Date(),
+	        autoclose: true,
+	        todayBtn: true,
+	        language: 'zh-CN',
+	        initialDate:new Date(),
+	        minView: 1      
+	    });
+	
+})
+
+
+$("#form-edit").validate({
+	submitHandler : function(form) {
+		edit();
+	}
+});
+
+function edit() {
+	var dataFormJson = $("#form-edit").serialize();
+	$.ajax({
+		cache : true,
+		type : "POST",
+		url : rootPath + "/ShbraceletpointController/edit",
+		data : dataFormJson,
+		async : false,
+		error : function(request) {
+			$.modal.alertError("系统错误");
+		},
+		success : function(data) {
+			$.operate.saveSuccess(data);
+		}
+	});
+}
+</script>
+
+</body>
+
+
+</html>

+ 262 - 0
src/main/resources/templates/gen/shbraceletpoint/list.html

@@ -0,0 +1,262 @@
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org" 
+      xmlns:sec="http://www.pollix.at/thymeleaf/shiro">
+<head th:replace="admin/common/html/head :: head_Normal(~{::title},~{::link},~{::style})">
+
+<title th:text=${title}></title>
+<!-- 这儿引用单独的css link -->
+<!-- Ladda for Bootstrap 3按钮加载进度插件 -->
+<link rel="stylesheet" th:href="@{/static/admin/assets/js/button/ladda/ladda.min.css}">
+<!-- bootstrap-table表单样式 -->
+<link th:href="@{/static/admin/assets/js/bootstrap/css/bootstrap-table/bootstrap-table.min.css}" rel="stylesheet"/>
+
+<style type="text/css">
+/**
+*这里写单独的css样式
+*/
+
+</style>
+
+</head>
+
+<body id="listbody">
+<!-- # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 代码编写处 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # -->
+
+<!-- 右边内容 -->
+<div class="wrap-fluid">
+    <div class="container-fluid paper-wrap bevel tlbr">
+        <!-- 内容 -->
+        <!--标题 通用-->
+        <div th:replace="admin/common/html/title :: title(${title},${parenttitle},${isMsg},${msgHTML})">
+        </div>
+        <!-- 结束标题 通用-->
+        <div class="content-wrap">
+            <!-- 结束内容 -->
+            <div class="row">
+                <div class="col-sm-12">
+                <!-- 搜索条件 -->
+                
+                	 <div class="nest" id="inlineClose">
+                            <div class="title-alt">
+                                <h6>搜索条件</h6>
+                                <div class="titleClose">
+                                    <a class="gone" href="#inlineClose">
+                                        <span class="entypo-cancel"></span>
+                                    </a>
+                                </div>
+                                <div class="titleToggle">
+                                    <a class="nav-toggle-alt" href="#search_div" >
+                                        <span class="entypo-down-open"></span>
+                                    </a>
+                                </div>
+                            </div>
+
+                            <div class="body-nest" id="search_div" style="display: none">
+                                <div class="form_left">
+                                    <form role="form" class="form-inline">
+                                        <div class="form-group">
+                                            <label for="exampleInputEmail2" class="sr-only">搜索名字</label>
+                                            <input type="text" name="searchText" placeholder="搜索名字"class="form-control">
+                                        </div>
+                                        <button onclick="$.table.search(this)" class="btn btn-success" type="button"><i class="fa fa-search"></i>&nbsp;搜索</button>
+                                    </form>
+                                </div>
+                            </div>
+                        </div>
+                	<!-- END搜索条件 -->
+                    <!-- 空白页开始-->
+                    <div class="nest" id="Blank_PageClose">
+                        <div class="title-alt">
+                            <h6>表单</h6>
+                            <div class="titleClose">
+                                <a class="gone" href="#Blank_PageClose">
+                                    <span class="entypo-cancel"></span>
+                                </a>
+                            </div>
+                            <div class="titleToggle">
+                                <a class="nav-toggle-alt" href="#Blank_Page_Content">
+                                    <span class="entypo-up-open"></span>
+                                </a>
+                            </div>
+                        </div>
+                        
+                        <div class="body-nest" id="Blank_Page_Content">
+                            <!-- 工具条 -->
+                            <div class="btn-group hidden-xs" id="exampleTableEventsToolbar" role="group">
+                            	<button onclick="$.operate.add()" type="button" class="btn btn-primary">
+                                    <span class="entypo-plus-squared"></span>&nbsp;&nbsp;新增
+                                </button>
+                               <button onclick="$.operate.batRemove()" type="button" class="btn btn-info">
+                                    <span class="entypo-trash"></span>&nbsp;&nbsp;删除
+                               </button>
+                               
+                           </div>
+                            <!-- 工具条 end-->
+                           <table id="dataTable" class="table-striped footable-res footable metro-blue" data-page-size="6">
+                                   
+                           </table>
+                        </div>
+                    </div>
+                </div>
+                <!-- 空白页结束 -->
+            </div>
+            <!-- 结束内容 -->
+        </div>
+    </div>
+</div>
+<!-- 结束右边内容 -->
+<!-- # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 代码编写处 END# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # -->
+
+
+
+
+
+
+
+<!-- 右侧隐藏滑块内容 -->
+<div th:include="admin/common/html/rightHide :: rightHide">
+    
+</div>
+   <!-- END 右侧隐藏滑块内容-->
+
+<!-- 通用js -->
+<div th:include="admin/common/html/js :: onload_js">
+   
+</div>
+<!-- bootstarp 表格 -->
+<script th:src="@{/static/admin/assets/js/bootstrap/js/bootstrap-table/bootstrap-table.min.js}" type="text/javascript"></script>
+<script th:src="@{/static/admin/assets/js/bootstrap/js/bootstrap-table/locale/bootstrap-table-zh-CN.min.js}" type="text/javascript"></script>
+<script th:src="@{/static/admin/assets/js/bootstrap/js/base_list.js}" type="text/javascript"></script>
+<!-- jquery-export 表格导出插件 -->
+<script th:src="@{/static/admin/assets/js/bootstrap/extensions/export/bootstrap-table-export.js}" type="text/javascript"></script>
+<script th:src="@{/static/admin/assets/js/bootstrap/extensions/export/tableExport.js}" type="text/javascript"></script>
+
+<!-- 弹窗 -->
+<script th:src="@{/static/admin/assets/js/layer/layer.js}" type="text/javascript"></script>
+<!-- 遮罩层 -->
+<script th:src="@{/static/admin/assets/js/blockUI/jquery.blockUI.js}" type="text/javascript"></script>
+
+<script type="text/javascript">
+
+      	   	      	      	      	      	      	      	      	      
+<!-- 导出 -->
+var dataUrl=window.rootPath+"/ShbraceletpointController/list";
+var removeUrl=window.rootPath+"/ShbraceletpointController/remove";
+var createUrl=window.rootPath+"/ShbraceletpointController/add";
+var updateUrl=window.rootPath+"/ShbraceletpointController/edit/{id}";
+var exportUrl=window.rootPath+"/ShbraceletpointController/export";
+  var options = {
+		dataUrl: dataUrl,
+        createUrl: createUrl,
+        updateUrl: updateUrl,
+        removeUrl:removeUrl,
+        exportUrl: exportUrl,
+        sortName: "roleSort",
+        modalName: "",
+        search: false,
+	   dataColumns: [
+			{
+			    checkbox: true
+			},
+			{
+			    field: 'id',
+			    title: ''
+			    //visible: false, //隐藏
+			    //searchable: false,//搜索
+			    //sortable:false,//设置true为允许列可以排序
+			    //order: asc //排序顺序
+			},
+			{
+			    field: 'key',
+			    title: ''
+			    //visible: false, //隐藏
+			    //searchable: false,//搜索
+			    //sortable:false,//设置true为允许列可以排序
+			    //order: asc //排序顺序
+			},
+			{
+			    field: 'value',
+			    title: ''
+			    //visible: false, //隐藏
+			    //searchable: false,//搜索
+			    //sortable:false,//设置true为允许列可以排序
+			    //order: asc //排序顺序
+			},
+			{
+			    field: 'ts',
+			    title: ''
+			    //visible: false, //隐藏
+			    //searchable: false,//搜索
+			    //sortable:false,//设置true为允许列可以排序
+			    //order: asc //排序顺序
+			},
+			{
+			    field: 'status',
+			    title: ''
+			    //visible: false, //隐藏
+			    //searchable: false,//搜索
+			    //sortable:false,//设置true为允许列可以排序
+			    //order: asc //排序顺序
+			},
+			{
+			    field: 'type',
+			    title: ''
+			    //visible: false, //隐藏
+			    //searchable: false,//搜索
+			    //sortable:false,//设置true为允许列可以排序
+			    //order: asc //排序顺序
+			},
+			{
+			    field: 'time',
+			    title: ''
+			    //visible: false, //隐藏
+			    //searchable: false,//搜索
+			    //sortable:false,//设置true为允许列可以排序
+			    //order: asc //排序顺序
+			},
+			{
+			    field: 'describe',
+			    title: ''
+			    //visible: false, //隐藏
+			    //searchable: false,//搜索
+			    //sortable:false,//设置true为允许列可以排序
+			    //order: asc //排序顺序
+			},
+
+/*	
+参照修改注释
+		{
+			    field: 'xxstate',
+			    title: 'xx状态',
+		    	formatter: function (value, row, index) {
+			        var actions = [];
+			        if(value==0){
+			        	 actions.push('<span class="label label-primary">关闭</span>');
+			        }else if(value==1){
+			        	 actions.push('<span class="label label-danger">开启</span>');
+			        }
+			      	return actions.join('');			    
+				 }
+			}
+*/
+			{
+			    title: '操作',
+			    formatter: function (value, row, index) {
+			        var id = row.id;
+			        var actions = [];
+			        actions.push('<a class="btn btn-success btn-xs"  href="#" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
+			        actions.push('<a class="btn btn-danger btn-xs" href="#" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
+			        return actions.join('');
+			    }
+			}]
+  };
+$(function(){
+	var oTab=$.table.oTableInit(options);
+	oTab.Init();
+})
+</script>
+
+</body>
+
+
+</html>