main
周文涛 2 years ago
parent 895c93ff3e
commit ae3b3503c1

@ -1,6 +1,11 @@
package com.example.zxweb.controller; package com.example.zxweb.controller;
import com.example.zxweb.dto.ZxCelueDTO;
import com.example.zxweb.service.IZxCelueService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@ -12,15 +17,25 @@ import javax.servlet.http.HttpServletRequest;
*/ */
@Controller @Controller
public class ThymeleafController { public class ThymeleafController {
@Autowired
IZxCelueService zxCelueService;
@RequestMapping("/") @RequestMapping("/")
public String index(HttpServletRequest request){ public String index(HttpServletRequest request){
return "index.html"; return "index.html";
} }
@RequestMapping("/celue/add") @RequestMapping("/celue/add")
public String celueAdd(HttpServletRequest request){ public String celueAdd(HttpServletRequest request,Model model){
model.addAttribute("type","add");
model.addAttribute("detail",new ZxCelueDTO());
return "add.html"; return "add.html";
} }
@RequestMapping("/celue/{id}")
public String celueDetail(@PathVariable("id")String id, Model model){
ZxCelueDTO detail = zxCelueService.getDetail(id);
model.addAttribute("detail",detail);
model.addAttribute("type","detail");
return "add.html";
}
} }

@ -17,4 +17,8 @@ import java.util.List;
public class ZxCelueDTO extends ZxCelue { public class ZxCelueDTO extends ZxCelue {
@ApiModelProperty(value = "选择设备id集合") @ApiModelProperty(value = "选择设备id集合")
private List<String> devidList; private List<String> devidList;
@ApiModelProperty(value = "timeType")
private String timeType;
@ApiModelProperty(value = "每周")
private String weeklyDay;
} }

@ -9,6 +9,7 @@ import com.example.zxweb.service.IZxCelueService;
import com.example.zxweb.utils.IotUtils; import com.example.zxweb.utils.IotUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner; import org.springframework.boot.ApplicationRunner;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@ -29,47 +30,63 @@ import java.util.List;
public class LoadCelueInit implements ApplicationRunner{ public class LoadCelueInit implements ApplicationRunner{
@Resource @Resource
IZxCelueService zxCelueService; IZxCelueService zxCelueService;
@Value("${iot.active}")
private boolean active;
@Override @Override
public void run(ApplicationArguments args) throws Exception { public void run(ApplicationArguments args) throws Exception {
Thread.sleep(5000L); Thread.sleep(5000L);
//获取网关的数据,同步到数据库中 if (active) {
String gateway_5lqh = DevConstant.gateway.gateway_5lqh;//5楼网关 //获取网关的数据,同步到数据库中
String format = String.format("{\"serial\":\"%s\",\"productId\":\"\",\"methodName\":\"celueListQuery\",\"inputData\":{\"devid\":\"%s\"}}", gateway_5lqh,gateway_5lqh); String gateway_5lqh = DevConstant.gateway.gateway_5lqh;//5楼网关
JSONObject requestBody = JSONObject.parseObject(format); String format = String.format("{\"serial\":\"%s\",\"productId\":\"\",\"methodName\":\"celueListQuery\",\"inputData\":{\"devid\":\"%s\"}}", gateway_5lqh,gateway_5lqh);
JSONObject responseBody = IotUtils.postApi(IotApiEnum.getPathByText("向设备发送方法"), requestBody); JSONObject requestBody = JSONObject.parseObject(format);
log.info(responseBody.toJSONString()); JSONObject responseBody = IotUtils.postApi(IotApiEnum.getPathByText("向设备发送方法"), requestBody);
//JSONObject responseBody = JSONObject.parseObject("{\"code\":\"0\",\"data\":{\"outputData\":{\"devid\":\"0cefafd605f7\",\"code\":1,\"list\":[{\"devid\":\"3381bbfeffea3590\",\"triggereTime\":\"20 18 * * 1,4,6\",\"name\":\"策略1\",\"action\":\"light00001.light.controlLight.ctrl_ch0_status=\\\"0\\\"&&chazuo000001.plug.controlPlug.ctrl_ch0_status=\\\"0\\\"\",\"startTime\":\"2023-11-12 10:00:00\",\"endTime\":\"2023-11-12 11:30:00\",\"celueid\":\"100000000001\"},{\"devid\":\"0cefafd605f7\",\"triggerCondition\":\"body0001.body_exist.status.report_status=\\\"0\\\"##900\",\"name\":\"策略2\",\"action\":\"light00001.light.controlLight.ctrl_ch0_status=\\\"0\\\"&&chazuo000001.plug.controlPlug.ctrl_ch0_status=\\\"0\\\"\",\"startTime\":\"2023-11-12 10:00:00\",\"endTime\":\"2023-11-12 11:30:00\",\"celueid\":\"100000000002\"},{\"devid\":\"0cefafd605f7\",\"triggereTime\":\"20 18 * * 1,4,6\",\"name\":\"策略3\",\"action\":\"e826ecfeff81f68c.light.controlLight.ctrl_ch0_status=\\\"0\\\"\",\"startTime\":\"2023-09-12 10:00:00\",\"endTime\":\"2023-09-30 11:30:00\",\"celueid\":\"100000000003\"}]}}}\n"); log.info(responseBody.toJSONString());
JSONObject data = responseBody.getJSONObject("data"); //JSONObject responseBody = JSONObject.parseObject("{\"code\":\"0\",\"data\":{\"outputData\":{\"devid\":\"0cefafd605f7\",\"code\":1,\"list\":[{\"devid\":\"3381bbfeffea3590\",\"triggereTime\":\"20 18 * * 1,4,6\",\"name\":\"策略1\",\"action\":\"light00001.light.controlLight.ctrl_ch0_status=\\\"0\\\"&&chazuo000001.plug.controlPlug.ctrl_ch0_status=\\\"0\\\"\",\"startTime\":\"2023-11-12 10:00:00\",\"endTime\":\"2023-11-12 11:30:00\",\"celueid\":\"100000000001\"},{\"devid\":\"0cefafd605f7\",\"triggerCondition\":\"body0001.body_exist.status.report_status=\\\"0\\\"##900\",\"name\":\"策略2\",\"action\":\"light00001.light.controlLight.ctrl_ch0_status=\\\"0\\\"&&chazuo000001.plug.controlPlug.ctrl_ch0_status=\\\"0\\\"\",\"startTime\":\"2023-11-12 10:00:00\",\"endTime\":\"2023-11-12 11:30:00\",\"celueid\":\"100000000002\"},{\"devid\":\"0cefafd605f7\",\"triggereTime\":\"20 18 * * 1,4,6\",\"name\":\"策略3\",\"action\":\"e826ecfeff81f68c.light.controlLight.ctrl_ch0_status=\\\"0\\\"\",\"startTime\":\"2023-09-12 10:00:00\",\"endTime\":\"2023-09-30 11:30:00\",\"celueid\":\"100000000003\"}]}}}\n");
if (data!=null) { JSONObject data = responseBody.getJSONObject("data");
JSONObject outputData = data.getJSONObject("outputData"); if (data!=null) {
if (outputData!=null) { JSONObject outputData = data.getJSONObject("outputData");
JSONArray list = outputData.getJSONArray("list"); if (outputData!=null) {
if (!CollectionUtils.isEmpty(list)) { JSONArray list = outputData.getJSONArray("list");
List<ZxCelue> zxCelues = list.toJavaList(ZxCelue.class); if (!CollectionUtils.isEmpty(list)) {
for (ZxCelue zxCelue : zxCelues) { List<ZxCelue> zxCelues = list.toJavaList(ZxCelue.class);
List<String> devidList=new ArrayList<>(); for (ZxCelue zxCelue : zxCelues) {
String action = zxCelue.getAction(); List<String> devidList=new ArrayList<>();
if (StringUtils.isNotBlank(action)) { String action = zxCelue.getAction();
String[] split = action.split("&&"); if (StringUtils.isNotBlank(action)) {
for (String s : split) { String[] split = action.split("&&");
String[] split1 = s.split("\\."); for (String s : split) {
String s1 = split1[0]; String[] split1 = s.split("\\.");
devidList.add(s1); String s1 = split1[0];
devidList.add(s1);
//判断是1 还是 0
String[] split2 = s.split("=");
if (split2!=null && split2.length>1) {
zxCelue.setType(split2[1].contains("1")?"1":"0");
}
}
} }
zxCelue.setDevid(String.join(",",devidList));
//获取状态
zxCelue.setStatus(IotUtils.getCelueStatus(zxCelue.getCelueid()));
} }
zxCelue.setDevid(String.join(",",devidList)); //更新库表
//获取状态 zxCelueService.saveOrUpdateBatch(zxCelues);
zxCelue.setStatus(IotUtils.getCelueStatus(zxCelue.getCelueid()));
} }
//更新库表
zxCelueService.saveOrUpdateBatch(zxCelues);
} }
} }
} }
} }
public static void main(String[] args) { public static void main(String[] args) {
ArrayList<String> devidList = new ArrayList<>(Arrays.asList("1,2")); String str="light00001.light.controlLight.ctrl_ch0_status=\"0\"&&chazuo000001.plug.controlPlug.ctrl_ch0_status=\"0\"";
System.out.println(String.join(",",devidList));; String[] split = str.split("&&");
for (String s : split) {
String[] split1 = s.split("=");
String s1 = split1[1];
System.out.println(s1);
}
/*ArrayList<String> devidList = new ArrayList<>(Arrays.asList("1,2"));
System.out.println(String.join(",",devidList));;*/
} }
} }

@ -58,12 +58,12 @@ public class ZxCelueServiceImpl extends ServiceImpl<ZxCelueMapper, ZxCelue> impl
AssertUtils.hasSize(addZxCeluePVO.getDevidList(),"请选择[设备]"); AssertUtils.hasSize(addZxCeluePVO.getDevidList(),"请选择[设备]");
try { try {
BeanUtils.copyProperties(addZxCeluePVO,zxCelue); BeanUtils.copyProperties(addZxCeluePVO,zxCelue);
if (StringUtils.isBlank(zxCelue.getStartTime())) { /*if (StringUtils.isBlank(zxCelue.getStartTime())) {
zxCelue.setStartTime(DateFormatUtils.format(date,"yyyy-MM-dd")); zxCelue.setStartTime(DateFormatUtils.format(date,"yyyy-MM-dd"));
} }
if (StringUtils.isBlank(zxCelue.getEndTime())) { if (StringUtils.isBlank(zxCelue.getEndTime())) {
zxCelue.setEndTime("2099-12-31"); zxCelue.setEndTime("2099-12-31");
} }*/
if (!CollectionUtils.isEmpty(addZxCeluePVO.getDevidList())) { if (!CollectionUtils.isEmpty(addZxCeluePVO.getDevidList())) {
zxCelue.setDevid(String.join(",", addZxCeluePVO.getDevidList())); zxCelue.setDevid(String.join(",", addZxCeluePVO.getDevidList()));
} }
@ -105,8 +105,8 @@ public class ZxCelueServiceImpl extends ServiceImpl<ZxCelueMapper, ZxCelue> impl
requestBodyJson.replace("%name",zxCelue.getName()); requestBodyJson.replace("%name",zxCelue.getName());
requestBodyJson.replace("%cron",cron); requestBodyJson.replace("%cron",cron);
requestBodyJson.replace("%action",action); requestBodyJson.replace("%action",action);
requestBodyJson.replace("%startDate",addZxCeluePVO.getStartTime()); requestBodyJson.replace("%startDate",StringUtils.isNotBlank(addZxCeluePVO.getStartTime())?addZxCeluePVO.getStartTime():null);
requestBodyJson.replace("%endDate",addZxCeluePVO.getEndTime()); requestBodyJson.replace("%endDate",StringUtils.isNotBlank(addZxCeluePVO.getEndTime())?addZxCeluePVO.getEndTime():null);
JSONObject requestBody = JSONObject.parseObject(requestBodyJson); JSONObject requestBody = JSONObject.parseObject(requestBodyJson);
IotUtils.celueSet(requestBody); IotUtils.celueSet(requestBody);
save(zxCelue); save(zxCelue);
@ -174,7 +174,6 @@ public class ZxCelueServiceImpl extends ServiceImpl<ZxCelueMapper, ZxCelue> impl
@Override @Override
public ZxCelueDTO getDetail(String id) { public ZxCelueDTO getDetail(String id) {
ZxCelue zxCelue = getById(id); ZxCelue zxCelue = getById(id);
ZxCelueDTO zxCelueDTO = new ZxCelueDTO(); ZxCelueDTO zxCelueDTO = new ZxCelueDTO();
BeanUtils.copyProperties(zxCelue,zxCelueDTO); BeanUtils.copyProperties(zxCelue,zxCelueDTO);
//拆分 所选设备id //拆分 所选设备id
@ -183,6 +182,27 @@ public class ZxCelueServiceImpl extends ServiceImpl<ZxCelueMapper, ZxCelue> impl
List<String> collect = Arrays.stream(devid.split(",")).collect(Collectors.toList()); List<String> collect = Arrays.stream(devid.split(",")).collect(Collectors.toList());
zxCelueDTO.setDevidList(collect); zxCelueDTO.setDevidList(collect);
} }
//判断所选时间类型
if (StringUtils.isNotBlank(zxCelue.getStartTime()) && StringUtils.isNotBlank(zxCelue.getEndTime())) {
if(zxCelue.getStartTime().equals(zxCelue.getEndTime())){
//单日
zxCelueDTO.setTimeType("day");
}else{
//范围
zxCelueDTO.setTimeType("date");
}
}else{
if (StringUtils.isNotBlank(zxCelue.getTriggereTime())) {
String[] split = zxCelue.getTriggereTime().split(" ");
//最后一个符号是*,代表是每天的
if (split[split.length-1].equals("*")) {
zxCelueDTO.setTimeType("everyDay");
}else{
zxCelueDTO.setTimeType("weekly");
zxCelueDTO.setWeeklyDay(split[split.length-1]);
}
}
}
return zxCelueDTO; return zxCelueDTO;
} }

@ -47,7 +47,7 @@ public class CronLowUtil {
cron = String.format("0 %s %s ? * %s",minute,hour,weeklyDay); cron = String.format("0 %s %s ? * %s",minute,hour,weeklyDay);
} else if("day".equals(timeType)){ } else if("day".equals(timeType)){
//单日 //单日
cron = String.format("0 %s %s %s * ? ",minute,hour,day); cron = String.format("0 %s %s %s * ?",minute,hour,day);
} else if ("date".equals(timeType)){ } else if ("date".equals(timeType)){
//日期段 //日期段
System.out.println("在"+startDate+"到"+endDate); System.out.println("在"+startDate+"到"+endDate);

@ -3,8 +3,13 @@ package com.example.zxweb.utils;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.example.zxweb.common.constant.enums.RmsApiEnum; import com.example.zxweb.common.constant.enums.RmsApiEnum;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/** /**
* @Description 访 * @Description 访
* @Author ZhouWenTao * @Author ZhouWenTao
@ -29,7 +34,7 @@ public class RmsUtils {
getToken(); getToken();
header.put("token",TOKEN);*/ header.put("token",TOKEN);*/
} }
static List<String> devidList= Arrays.asList("68EDA45C54F3","68EDA444D9DG");
public static void getToken() { public static void getToken() {
JSONObject requestBody = JSONObject.parseObject("{\"email\":\"admin\", \"pswd\":\"cf79ae6addba60ad018347359bd144d2\"}"); JSONObject requestBody = JSONObject.parseObject("{\"email\":\"admin\", \"pswd\":\"cf79ae6addba60ad018347359bd144d2\"}");
@ -51,20 +56,20 @@ public class RmsUtils {
* @return {"code":0,"msg":"成功","pagecount":2,"pageNum":1,"content":[{"id":85,"rcode":"1486300085","parentid":null,"vid":88,"visitor":{"id":88,"name":"王麻子","sex":"男","nation":"汉","birthday":null,"idnum":"a543546aef4bdd46ac957554f3c4f8cd222498dd2c2d56d1a9e5939469930619","idnumAdd":"123456123456","idnumCipher":"04e08e6ebddced2dd94b588e039096a2111f8be98f9eb79e365a3443c697d699ac9f08b892821e2b3b4e22b54203084b4e111329918b810c2fc480637c830e2fe909a7b4e75c18c91da3a163441ea36123ca105526b68c11e570e6869bc4c6121825f116905de9107c1d7832b7","photo":null,"sitePhoto":null,"issuing":null,"validitydatestart":null,"validitydateend":null,"phone":"84537d95e88ce687e4efab251a746c7318dbe7cc2f6cecbb0840ce4889e7a2a5","phoneAdd":"13900074111","phoneCipher":"04d176b602a7ad1c6b9784adc7adef54e90c7e771f04aba9ca66c3cf3abfa0cc6163203fb4c1017381a7ccc6a396150af3070efa193cfc22d128294bc58a52705077cbba29dc322072e95815d5ed19e92ee7b2f2c0470e4e15ae0eb15fa8540df61b07dfd4a1256955bbd019","startTime":null,"endTime":null,"pinYin":"wmz","syncId":null,"companyCode":null,"isbindfinger":0,"isbindface":0,"wltPhoto":null,"tabTime":null,"uploadTime":null,"isVip":0,"sheetSize":null,"idphoto":null},"uid":20653,"user":{"id":20653,"nickname":"张三","userpinyin":null,"email":"abc10110","pswd":null,"terminalpswd":null,"createTime":null,"lastLoginTime":null,"status":1,"sex":1,"nation":null,"nations":null,"birthday":null,"address":null,"idNum":"1304331989111111","photo":"\\image\\idpic\\1304331989111111_20221108143849677.png","issuing":null,"validityDateStart":null,"validityDateEnd":null,"phone":"13931021490","dep":null,"depID":1049,"depSyncId":null,"depName":null,"telephone":"010123456","ecardNum":"12345678","ecardEndTime":"2042-11-30 00:00:00","pinYin":null,"syncId":"abc10110","companyNum":null,"sta":null,"imIP":null,"imTime":null,"entranceGuards":null,"isbindface":null,"visitable":null,"tabTime":null,"uploadTime":null,"idphoto":null,"plateNo":null,"plateTime":null,"plateIssue":null},"dept":{"id":1049,"value":"子级部门1","pinyin":"zjbm1","parentId":null,"syncId":"abc123","syncParentId":null,"companyNum":null,"sta":null,"visitable":null,"sortnum":null,"tabTime":null,"uploadTime":null},"createtime":"2022-11-09 13:44:46","starttime":"2022-11-09 13:44:00","endtime":"2022-11-09 23:59:00","logofftime":null,"status":0,"reasons":"访问","unit":"公司名称","num":1,"type":0,"isprintvoucher":0,"ispullcard":1,"cardtype":0,"cardnum":"1234512345","sitephoto":null,"headphoto":null,"vCar":{"id":180,"cardnum":"京A99999","cardcolor":null,"num":null,"arid":85,"companyCode":null,"tabTime":null,"uploadTime":null},"drList":[],"trList":[],"isUpload":0,"pageNum":null,"yyID":null,"companyCode":"000000","terminalCode":"1000002","terminalManagerId":1038,"zhuxiaoManagerId":null,"tabTime":"2022-11-09 13:44:46","uploadTime":null,"syncId":null,"tiwen":35.0,"terminalManagerName":null,"zhuxiaoManagerName":null,"zhuxiaoTerminalCode":null,"channels":"","comment":"","xckStatus":0,"xckvisitedArea":null,"xckPhone":null,"xckUpdateTime":null,"xckPhoto":null,"jkbPhoto":null,"healthStatus":null,"lastRNATime":null,"lastRNAResult":null,"travelStatus":null,"tel":null,"vcar":{"id":180,"cardnum":"京A99999","cardcolor":null,"num":null,"arid":85,"companyCode":null,"tabTime":null,"uploadTime":null}}],"success":true} * @return {"code":0,"msg":"成功","pagecount":2,"pageNum":1,"content":[{"id":85,"rcode":"1486300085","parentid":null,"vid":88,"visitor":{"id":88,"name":"王麻子","sex":"男","nation":"汉","birthday":null,"idnum":"a543546aef4bdd46ac957554f3c4f8cd222498dd2c2d56d1a9e5939469930619","idnumAdd":"123456123456","idnumCipher":"04e08e6ebddced2dd94b588e039096a2111f8be98f9eb79e365a3443c697d699ac9f08b892821e2b3b4e22b54203084b4e111329918b810c2fc480637c830e2fe909a7b4e75c18c91da3a163441ea36123ca105526b68c11e570e6869bc4c6121825f116905de9107c1d7832b7","photo":null,"sitePhoto":null,"issuing":null,"validitydatestart":null,"validitydateend":null,"phone":"84537d95e88ce687e4efab251a746c7318dbe7cc2f6cecbb0840ce4889e7a2a5","phoneAdd":"13900074111","phoneCipher":"04d176b602a7ad1c6b9784adc7adef54e90c7e771f04aba9ca66c3cf3abfa0cc6163203fb4c1017381a7ccc6a396150af3070efa193cfc22d128294bc58a52705077cbba29dc322072e95815d5ed19e92ee7b2f2c0470e4e15ae0eb15fa8540df61b07dfd4a1256955bbd019","startTime":null,"endTime":null,"pinYin":"wmz","syncId":null,"companyCode":null,"isbindfinger":0,"isbindface":0,"wltPhoto":null,"tabTime":null,"uploadTime":null,"isVip":0,"sheetSize":null,"idphoto":null},"uid":20653,"user":{"id":20653,"nickname":"张三","userpinyin":null,"email":"abc10110","pswd":null,"terminalpswd":null,"createTime":null,"lastLoginTime":null,"status":1,"sex":1,"nation":null,"nations":null,"birthday":null,"address":null,"idNum":"1304331989111111","photo":"\\image\\idpic\\1304331989111111_20221108143849677.png","issuing":null,"validityDateStart":null,"validityDateEnd":null,"phone":"13931021490","dep":null,"depID":1049,"depSyncId":null,"depName":null,"telephone":"010123456","ecardNum":"12345678","ecardEndTime":"2042-11-30 00:00:00","pinYin":null,"syncId":"abc10110","companyNum":null,"sta":null,"imIP":null,"imTime":null,"entranceGuards":null,"isbindface":null,"visitable":null,"tabTime":null,"uploadTime":null,"idphoto":null,"plateNo":null,"plateTime":null,"plateIssue":null},"dept":{"id":1049,"value":"子级部门1","pinyin":"zjbm1","parentId":null,"syncId":"abc123","syncParentId":null,"companyNum":null,"sta":null,"visitable":null,"sortnum":null,"tabTime":null,"uploadTime":null},"createtime":"2022-11-09 13:44:46","starttime":"2022-11-09 13:44:00","endtime":"2022-11-09 23:59:00","logofftime":null,"status":0,"reasons":"访问","unit":"公司名称","num":1,"type":0,"isprintvoucher":0,"ispullcard":1,"cardtype":0,"cardnum":"1234512345","sitephoto":null,"headphoto":null,"vCar":{"id":180,"cardnum":"京A99999","cardcolor":null,"num":null,"arid":85,"companyCode":null,"tabTime":null,"uploadTime":null},"drList":[],"trList":[],"isUpload":0,"pageNum":null,"yyID":null,"companyCode":"000000","terminalCode":"1000002","terminalManagerId":1038,"zhuxiaoManagerId":null,"tabTime":"2022-11-09 13:44:46","uploadTime":null,"syncId":null,"tiwen":35.0,"terminalManagerName":null,"zhuxiaoManagerName":null,"zhuxiaoTerminalCode":null,"channels":"","comment":"","xckStatus":0,"xckvisitedArea":null,"xckPhone":null,"xckUpdateTime":null,"xckPhoto":null,"jkbPhoto":null,"healthStatus":null,"lastRNATime":null,"lastRNAResult":null,"travelStatus":null,"tel":null,"vcar":{"id":180,"cardnum":"京A99999","cardcolor":null,"num":null,"arid":85,"companyCode":null,"tabTime":null,"uploadTime":null}}],"success":true}
*/ */
public static JSONObject fkterminalFindAccessRecord(JSONObject requestBody){ public static JSONObject fkterminalFindAccessRecord(JSONObject requestBody){
String devid = requestBody.getString("devid"); JSONObject responseBody =null;
header.put("devid",devid); for (String devid : devidList) {
String starttime = requestBody.getString("starttime");//开始时间* header.put("devid",devid);
String status = requestBody.getString("status");//状态:-1超时未注销、0登记中、1已注销3预约 String starttime = requestBody.getString("starttime");//开始时间*
String pageNum = requestBody.getString("pageNum");//页数 String status = requestBody.getString("status");//状态:-1超时未注销、0登记中、1已注销3预约
String num = requestBody.getString("num");//查询条 String pageNum = requestBody.getString("pageNum");//页
String endtime = requestBody.getString("endtime");//结束时间* String num = requestBody.getString("num");//查询条数
AssertUtils.notEmpty(starttime,"请输入开始时间-[starttime]"); String endtime = requestBody.getString("endtime");//结束时间*
AssertUtils.notEmpty(endtime,"请输入结束时间-[endtime]"); AssertUtils.notEmpty(starttime,"请输入开始时间-[starttime]");
JSONObject responseBody = RestUtil.post(API_PREFIX+RmsApiEnum.getApiByText("访客查询"), requestBody, header); AssertUtils.notEmpty(endtime,"请输入结束时间-[endtime]");
log.error(responseBody.toJSONString()); responseBody = RestUtil.post(API_PREFIX+RmsApiEnum.getApiByText("访客查询"), requestBody, header);
AssertUtils.notNull(responseBody,"请求失败"); log.error(responseBody.toJSONString());
//Integer code = responseBody.getInteger("code"); AssertUtils.notNull(responseBody,"请求失败");
//AssertUtils.isTrue(0==code,"请求异常:"+responseBody.getString("msg")); }
return responseBody; return responseBody;
} }
@ -75,25 +80,29 @@ public class RmsUtils {
*/ */
public static JSONObject syncOrderrecord(JSONObject requestBody){ public static JSONObject syncOrderrecord(JSONObject requestBody){
getToken(); getToken();
JSONObject responseBody=null;
for (String devid : devidList) {
header.put("devid",devid);
String reason = requestBody.getString("reason");//状态
String synId = requestBody.getString("synId");//被访人ID*
String visitorBeginTime = requestBody.getString("visitorBeginTime");//来访时间 yyyy-MM-dd HH:mm:ss yyyy*
String visitorEndTime = requestBody.getString("visitorEndTime");//结束时间 yyyy-MM-dd HH:mm:ss*
String visitorCmp = requestBody.getString("visitorCmp");//访客单位
String visitorIdNum = requestBody.getString("visitorIdNum");//访客证件号码*
String visitorName = requestBody.getString("visitorName");//访客姓名*
String visitorPhone = requestBody.getString("visitorPhone");//访客手机号
AssertUtils.notEmpty(synId,"请输入被访客ID-[synId]");
AssertUtils.notEmpty(visitorBeginTime,"请输入来访时间-[visitorBeginTime]");
AssertUtils.notEmpty(visitorEndTime,"请输入结束时间-[visitorEndTime]");
AssertUtils.notEmpty(visitorIdNum,"请输入访客证件号-[visitorIdNum]");
AssertUtils.notEmpty(visitorName,"请输入访客姓名-[visitorName]");
responseBody = RestUtil.post(API_PREFIX+RmsApiEnum.getApiByText("访客预约"), requestBody, header);
log.error(responseBody.toJSONString());
AssertUtils.notNull(responseBody,"请求接口异常");
}
String devid = requestBody.getString("devid"); String devid = requestBody.getString("devid");
System.out.println(header.toJSONString()); System.out.println(header.toJSONString());
header.put("devid",devid);
String reason = requestBody.getString("reason");//状态
String synId = requestBody.getString("synId");//被访人ID*
String visitorBeginTime = requestBody.getString("visitorBeginTime");//来访时间 yyyy-MM-dd HH:mm:ss yyyy*
String visitorEndTime = requestBody.getString("visitorEndTime");//结束时间 yyyy-MM-dd HH:mm:ss*
String visitorCmp = requestBody.getString("visitorCmp");//访客单位
String visitorIdNum = requestBody.getString("visitorIdNum");//访客证件号码*
String visitorName = requestBody.getString("visitorName");//访客姓名*
String visitorPhone = requestBody.getString("visitorPhone");//访客手机号
AssertUtils.notEmpty(synId,"请输入被访客ID-[synId]");
AssertUtils.notEmpty(visitorBeginTime,"请输入来访时间-[visitorBeginTime]");
AssertUtils.notEmpty(visitorEndTime,"请输入结束时间-[visitorEndTime]");
AssertUtils.notEmpty(visitorIdNum,"请输入访客证件号-[visitorIdNum]");
AssertUtils.notEmpty(visitorName,"请输入访客姓名-[visitorName]");
JSONObject responseBody = RestUtil.post(API_PREFIX+RmsApiEnum.getApiByText("访客预约"), requestBody, header);
log.error(responseBody.toJSONString());
AssertUtils.notNull(responseBody,"请求接口异常");
//Integer code = responseBody.getInteger("code"); //Integer code = responseBody.getInteger("code");
//AssertUtils.isTrue(code==0,"请求访客预约接口异常:"+requestBody.getOrDefault("msg","")); //AssertUtils.isTrue(code==0,"请求访客预约接口异常:"+requestBody.getOrDefault("msg",""));
return responseBody; return responseBody;
@ -108,13 +117,15 @@ public class RmsUtils {
public static JSONObject fkterminalRecoverCard(JSONObject requestBody) { public static JSONObject fkterminalRecoverCard(JSONObject requestBody) {
getToken(); getToken();
System.out.println(header.toJSONString()); System.out.println(header.toJSONString());
String devid = requestBody.getString("devid"); JSONObject responseBody=null;
header.put("devid",devid); for (String devid : devidList) {
String cardNum = requestBody.getString("cardNum"); header.put("devid",devid);
AssertUtils.notEmpty(cardNum,"清输入访客证件号-[cardNum]"); String cardNum = requestBody.getString("cardNum");
JSONObject responseBody = RestUtil.post(API_PREFIX+RmsApiEnum.getApiByText("访客注销")+"/"+cardNum, null, header); AssertUtils.notEmpty(cardNum,"清输入访客证件号-[cardNum]");
log.error(responseBody.toJSONString()); responseBody = RestUtil.post(API_PREFIX+RmsApiEnum.getApiByText("访客注销")+"/"+cardNum, null, header);
AssertUtils.notNull(responseBody,"请求失败"); log.error(responseBody.toJSONString());
AssertUtils.notNull(responseBody,"请求失败");
}
//Integer code = responseBody.getInteger("code"); //Integer code = responseBody.getInteger("code");
//AssertUtils.isTrue(0==code,"请求异常:"+responseBody.getString("msg")); //AssertUtils.isTrue(0==code,"请求异常:"+responseBody.getString("msg"));
return responseBody; return responseBody;

@ -22,8 +22,8 @@ public class AddZxCeluePVO implements Serializable {
private String name; private String name;
@ApiModelProperty(value = "执行类型(放电/断电/开灯/关灯....)") @ApiModelProperty(value = "执行类型(放电/断电/开灯/关灯....)")
private String type; private String type;
@ApiModelProperty(value = "时间类型(everyDay:每天,weekly:每周,day:每天,date:日期段)") @ApiModelProperty(value = "时间类型(everyDay:每天,weekly:每周,day:单日,date:日期段)")
private String timeType;//时间类型(everyDay:每天,weekly:每周,day:每天,date:日期段) private String timeType;//时间类型(everyDay:每天,weekly:每周,day:单日,date:日期段)
@ApiModelProperty(value = "执行时间(HH:mm 例08:30)") @ApiModelProperty(value = "执行时间(HH:mm 例08:30)")
private String exeTime;//执行时间(HH:mm 例08:30) private String exeTime;//执行时间(HH:mm 例08:30)
@ApiModelProperty(value = "1,2,3周一,周二,周三") @ApiModelProperty(value = "1,2,3周一,周二,周三")

@ -1,11 +1,12 @@
<!DOCTYPE html> <!DOCTYPE html>
<!--suppress ALL-->
<html lang="en" xmlns:th="https://www.thymeleaf.org/"> <html lang="en" xmlns:th="https://www.thymeleaf.org/">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>新增控制策略</title> <title th:if="${type == 'add'}">新增控制策略</title>
<title th:if="${type == 'detail'}">查看控制策略</title>
<!-- 引入 layui.css --> <!-- 引入 layui.css -->
<link href="../static/layui-v2.8.11/css/layui.css" rel="stylesheet"> <link href="../static/layui-v2.8.11/css/layui.css" rel="stylesheet">
<link href="../static/formSelects-v4/formSelects-v4.css" rel="stylesheet" />
<!-- 引入 layui.js --> <!-- 引入 layui.js -->
<script src="../static/layui-v2.8.11/layui.js"></script> <script src="../static/layui-v2.8.11/layui.js"></script>
<script src="../static/jquery/jquery-3.2.1.min.js"></script> <script src="../static/jquery/jquery-3.2.1.min.js"></script>
@ -122,7 +123,8 @@
<div class="body"> <div class="body">
<div class="left-title layui-row"> <div class="left-title layui-row">
<div class="layui-col-md6 layui-col-xs6 layui-col-sm6 layui-col-lg6 layui-col-xl6"> <div class="layui-col-md6 layui-col-xs6 layui-col-sm6 layui-col-lg6 layui-col-xl6">
<p>新增控制策略</p> <p th:if="${type == 'add'}">新增控制策略</p>
<p th:if="${type == 'detail'}">查看控制策略</p>
</div> </div>
<div class="layui-col-md6 layui-col-xs6 layui-col-sm6 layui-col-lg6 layui-col-xl6"> <div class="layui-col-md6 layui-col-xs6 layui-col-sm6 layui-col-lg6 layui-col-xl6">
<!--<button type="button" class="layui-btn" style="font-size: 16px;float: right;background-color: #41a69a">返回</button>--> <!--<button type="button" class="layui-btn" style="font-size: 16px;float: right;background-color: #41a69a">返回</button>-->
@ -143,7 +145,7 @@
<td> <td>
<div class="layui-col-md7"> <div class="layui-col-md7">
<div class="layui-form"> <div class="layui-form">
<input type="text" name="name" id="celueName" placeholder="请填写策略名称···" class="layui-input"> <input type="text" name="name" id="celueName" placeholder="请填写策略名称···" class="layui-input" th:value="${detail.name}" th:readonly="${type=='detail'}">
</div> </div>
</div> </div>
</td> </td>
@ -151,6 +153,7 @@
<tr> <tr>
<td>选择设备:</td> <td>选择设备:</td>
<td> <td>
<input id="devids" th:value="${detail.devid}" type="hidden"/>
<select id="id_select2_demo1" class="layui-col-md7" multiple="multiple"> <select id="id_select2_demo1" class="layui-col-md7" multiple="multiple">
<!--  <optgroup label="Group 1" class="group-1"> <!--  <optgroup label="Group 1" class="group-1">
    <option value="1-1">Option 1.1</option>     <option value="1-1">Option 1.1</option>
@ -170,12 +173,18 @@
<td> <td>
<div class="layui-form layui-row layui-col-space16"> <div class="layui-form layui-row layui-col-space16">
<div class="layui-col-md3"> <div class="layui-col-md3">
<select id="type"> <select id="type" th:value="${detail.type}" th:readonly="${type=='detail'}" th:if="${type!='detail'}">
<option value="">请选择</option> <option value="">请选择</option>
<option value="开灯">开灯</option> <option value="1">开灯/放电</option>
<option value="关灯">关灯</option> <option value="0">关灯/断电</option>
</select> </select>
</div> </div>
<div th:else th:switch="${detail.type}">
<div class="layui-field-box">
<span th:case="1">开灯/放电</span>
<span th:case="0">关灯/断电</span>
</div>
</div>
</div> </div>
</td> </td>
</tr> </tr>
@ -183,35 +192,36 @@
<td>执行周期:</td> <td>执行周期:</td>
<td> <td>
<div class="layui-form"> <div class="layui-form">
<input type="radio" name="timeType" value="everyDay" lay-filter="demo-radio-filter" title="每天" checked> <input type="radio" name="timeType" value="everyDay" lay-filter="demo-radio-filter" title="每天" th:checked="${detail.timeType=='everyDay'}">
<input type="radio" name="timeType" value="weekly" lay-filter="demo-radio-filter" title="每周"> <input type="radio" name="timeType" value="weekly" lay-filter="demo-radio-filter" title="每周" th:checked="${detail.timeType=='weekly'}">
<input type="radio" name="timeType" value="day" lay-filter="demo-radio-filter" title="单日"> <input type="radio" name="timeType" value="day" lay-filter="demo-radio-filter" title="单日" th:checked="${detail.timeType=='day'}">
<input type="radio" name="timeType" value="date" lay-filter="demo-radio-filter" title="日期段"> <input type="radio" name="timeType" value="date" lay-filter="demo-radio-filter" title="日期段" th:checked="${detail.timeType=='date'}">
<!--<input type="radio" name="AAA" value="3" title="禁用" disabled>--> <!--<input type="radio" name="AAA" value="3" title="禁用" disabled>-->
</div> </div>
</td> </td>
</tr> </tr>
<tr id="weeklyTr"> <tr id="weeklyTr" th:hidden="${type=='add' && detail.timeType!='weekly'}">
<!----> <!---->
<td>选择日期:</td> <td>选择日期:</td>
<td> <td>
<div class="layui-col-md6" id="weeklyDiv"> <div class="layui-col-md6" id="weeklyDiv">
<div class="layui-form"> <div class="layui-form">
<input type="checkbox" name="weeklyDay" title="星期一" value="1"> <input id="weeklyd" type="hidden" th:value="${detail.weeklyDay}"/>
<input type="checkbox" name="weeklyDay" title="星期二" value="2"> <input type="checkbox" name="weeklyDay" title="星期一" value="1" id="weeklyDay1">
<input type="checkbox" name="weeklyDay" title="星期三" value="3"> <input type="checkbox" name="weeklyDay" title="星期二" value="2" id="weeklyDay2">
<input type="checkbox" name="weeklyDay" title="星期四" value="4"> <input type="checkbox" name="weeklyDay" title="星期三" value="3" id="weeklyDay3">
<input type="checkbox" name="weeklyDay" title="星期五" value="5"> <input type="checkbox" name="weeklyDay" title="星期四" value="4" id="weeklyDay4">
<input type="checkbox" name="weeklyDay" title="星期六" value="6"> <input type="checkbox" name="weeklyDay" title="星期五" value="5" id="weeklyDay5">
<input type="checkbox" name="weeklyDay" title="星期日" value="7"> <input type="checkbox" name="weeklyDay" title="星期六" value="6" id="weeklyDay6">
<!--<input type="checkbox" name="weeklyDay" lay-text="选中" checked> <input type="checkbox" name="weeklyDay" title="星期日" value="7" id="weeklyDay7">
<input type="checkbox" name="weeklyDay" title="禁用" disabled>--> <!--<input type="checkbox" name="weeklyDay" lay-text="选中" checked>
<input type="checkbox" name="weeklyDay" title="禁用" disabled>-->
</div> </div>
</div> </div>
</td> </td>
</tr> </tr>
<tr id="dayTr"> <tr id="dayTr" th:hidden="${type=='add' && detail.timeType!='day'}">
<!--单日--> <!--单日-->
<td>选择日期:</td> <td>选择日期:</td>
<td> <td>
@ -225,7 +235,7 @@
</div> </div>
</td> </td>
</tr> </tr>
<tr id="dateTr"> <tr id="dateTr" th:hidden="${type=='add' && detail.timeType!='date'}">
<!--范围--> <!--范围-->
<td>选择日期:</td> <td>选择日期:</td>
<td> <td>
@ -274,10 +284,13 @@
</tr> </tr>
</tbody> </tbody>
</table> </table>
<div class="layui-input-inline"> <div class="layui-input-inline" th:if="${type == 'add'}">
<button type="button" onclick="sub()" class="layui-btn layui-btn-normal">提交</button> <button type="button" onclick="sub()" class="layui-btn layui-btn-normal">提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button> <button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div> </div>
<div class="layui-input-inline" th:if="${type == 'detail'}">
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</form> </form>
</div> </div>
@ -293,9 +306,10 @@
/*select2 回显*/ /*select2 回显*/
var str='1,2,3'; var str=$("#devids").val();
var arr=str.split(','); var arr=str.split(',');
//$('#id_select2_demo1').val(arr).trigger('change') console.log(arr)
$('#id_select2_demo1').val(arr).trigger('change')
loadTable(); loadTable();
var form; var form;
@ -321,11 +335,29 @@
range: ['#ID-laydate-start-date-1', '#ID-laydate-end-date-1'], range: ['#ID-laydate-start-date-1', '#ID-laydate-end-date-1'],
rangeLinked: true // 开启日期范围选择时的区间联动标注模式 --- 2.8+ 新增 rangeLinked: true // 开启日期范围选择时的区间联动标注模式 --- 2.8+ 新增
}); });
$("#weeklyTr").hide(); /*$("#weeklyTr").hide();
$("#dayTr").hide(); $("#dayTr").hide();
$("#dateTr").hide(); $("#dateTr").hide();*/
/*$('#dayTr').hide(); /*$('#dayTr').hide();
$('#dayTr2').show();*/ $('#dayTr2').show();*/
let weeklyd = $("#weeklyd").val();
if (weeklyd != null && weeklyd != '') {
let split = weeklyd.split(',');
$("[name=weeklyDay]").each(function () {
// 根据值回显
if (weeklyd.indexOf($(this).val())!=-1) {
$(this).attr("checked", "checked");
/*return false;*/
}
form.render();
});
/*for (let i = 0; i < split.length; i++) {
console.log(split[i])
$("#weeklyDay"+split[i]).attr("checked","checked");
}*/
}
// 事件 // 事件
// radio 事件 // radio 事件
form.on('radio(demo-radio-filter)', function(data){ form.on('radio(demo-radio-filter)', function(data){
@ -522,29 +554,6 @@
console.log(res) console.log(res)
if(res.success){ if(res.success){
var selectorx = $('#id_select2_demo1').select2(); var selectorx = $('#id_select2_demo1').select2();
var data=[
{
"text": "照明设备组",
"children": [
{
"id": "1",
"text": "1F左侧走廊照明灯组"
},
{
"id": 2,
"text": "1F右侧走廊照明灯组"
},
{
"id": 3,
"text": "2F左侧走廊照明灯组"
},
{
"id": 4,
"text": "2F右侧走廊照明灯组"
}
],
}
];
$("#id_select2_demo1").select2({ $("#id_select2_demo1").select2({
data:res.result data:res.result
}); });

Loading…
Cancel
Save