导入导出
parent
78870baf7d
commit
363f046374
|
|
@ -66,6 +66,8 @@ public class SysDiscernController extends BaseController {
|
|||
primaryRadarData1.setType("车架");
|
||||
} else if (primaryRadarData1.getLadleNumber().contains("铁")) {
|
||||
primaryRadarData1.setType("铁包");
|
||||
}else {
|
||||
primaryRadarData1.setType(null);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import com.ruoyi.framework.shiro.util.AuthorizationUtils;
|
|||
import com.ruoyi.system.service.*;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.ModelMap;
|
||||
|
|
@ -100,4 +101,47 @@ public class NormalIdentifierController extends BaseController
|
|||
identifier.setUpdateBy(getLoginName());
|
||||
return toAjax(identifierService.updateNormalIdentifier(identifier));
|
||||
}
|
||||
|
||||
@PostMapping("/remove")
|
||||
@ResponseBody
|
||||
public AjaxResult remove(String ids)
|
||||
{
|
||||
|
||||
return toAjax(identifierService.deleteRadarByIds(ids));
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/export")
|
||||
@ResponseBody
|
||||
public AjaxResult export(SysIdentifier sysIdentifier)
|
||||
{
|
||||
List<SysIdentifier> list = identifierService.selectNormalIdentifierList(sysIdentifier);;
|
||||
List<NormalExcel> collect = list.stream().map(identifier -> {
|
||||
NormalExcel normalExcel = new NormalExcel();
|
||||
BeanUtils.copyProperties(identifier, normalExcel);
|
||||
return normalExcel;
|
||||
}
|
||||
).collect(Collectors.toList());
|
||||
ExcelUtil<NormalExcel> util = new ExcelUtil<NormalExcel>(NormalExcel.class);
|
||||
return util.exportExcel(collect, "常温标识器配置");
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/importTemplate")
|
||||
@ResponseBody
|
||||
public AjaxResult importTemplate()
|
||||
{
|
||||
ExcelUtil<NormalExcel> util = new ExcelUtil<NormalExcel>(NormalExcel.class);
|
||||
return util.importTemplateExcel("常温标识器配置");
|
||||
}
|
||||
|
||||
@PostMapping("/importData")
|
||||
@ResponseBody
|
||||
public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
|
||||
{
|
||||
ExcelUtil<NormalExcel> util = new ExcelUtil<NormalExcel>(NormalExcel.class);
|
||||
List<NormalExcel> normalList = util.importExcel(file.getInputStream());
|
||||
String message = identifierService.importNormalData(normalList, updateSupport);
|
||||
return AjaxResult.success(message);
|
||||
}
|
||||
}
|
||||
|
|
@ -28,6 +28,7 @@ import org.springframework.web.bind.annotation.PostMapping;
|
|||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import java.net.Inet4Address;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
|
|
@ -80,6 +81,7 @@ public class RadarStatusController
|
|||
public void run() {
|
||||
try {
|
||||
for (SysRadar radar : radarList) {
|
||||
// ModbusResponse modbusResponse = new ModbusResponse();
|
||||
ModbusMaster master = ModbusUtils.getSlave(radar.getRadarIp(), 23);
|
||||
System.out.println(radar.getRadarIp());
|
||||
ModbusResponse modbusResponse = ModbusUtils.holdingRegister();
|
||||
|
|
@ -87,14 +89,19 @@ public class RadarStatusController
|
|||
System.out.println(modbusResponse);
|
||||
String tag = modbusResponse.getTagId();
|
||||
PrimaryRadarData primaryRadarData = new PrimaryRadarData();
|
||||
if (!"0".equals(modbusResponse.getTagId())) {
|
||||
SysIdentifier sysIdentifier = identifierService.selectIdentifierByTag(tag);
|
||||
primaryRadarData.setLadleNumber(sysIdentifier.getLadleNumber());
|
||||
}
|
||||
SysIdentifier sysIdentifier = new SysIdentifier();
|
||||
BeanUtils.copyProperties(modbusResponse,primaryRadarData);
|
||||
primaryRadarData.setRadarLocation(radar.getRadarLocation());
|
||||
primaryRadarData.setRadarIp(radar.getRadarIp());
|
||||
|
||||
if (!"0".equals(modbusResponse.getTagId())) {
|
||||
sysIdentifier = identifierService.selectIdentifierByTag(tag);
|
||||
primaryRadarData.setLadleNumber(sysIdentifier.getLadleNumber());
|
||||
primaryRadarData.setRadarLocation(radar.getRadarLocation());
|
||||
primaryRadarData.setRadarIp(radar.getRadarIp());
|
||||
}else {
|
||||
primaryRadarData.setLadleNumber(null);
|
||||
primaryRadarData.setRadarLocation(null);
|
||||
primaryRadarData.setRadarIp(radar.getRadarIp());
|
||||
}
|
||||
String ip = Inet4Address.getLocalHost().getHostAddress();
|
||||
if (modbusResponse.getValue4()!=null && !"0".equals(modbusResponse.getValue4())) {
|
||||
primaryRadarDataService.insertPrimaryRadarData(primaryRadarData);
|
||||
}
|
||||
|
|
@ -105,11 +112,10 @@ public class RadarStatusController
|
|||
System.err.println("从串口读取失败:" + "连接超时");
|
||||
}
|
||||
e.printStackTrace();
|
||||
connectionStatus.connected= false;
|
||||
}
|
||||
}
|
||||
};
|
||||
timer.scheduleAtFixedRate(task, 1, 100);
|
||||
timer.scheduleAtFixedRate(task, 1, 1000);
|
||||
|
||||
return responses;
|
||||
});
|
||||
|
|
@ -128,6 +134,8 @@ public class RadarStatusController
|
|||
}
|
||||
rspData.setRows(radarList.subList(pageNum, pageSize));
|
||||
rspData.setTotal(radarList.size());
|
||||
|
||||
// RadarStatusWebSocket.sendToAll(rspData);
|
||||
return rspData;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import com.ruoyi.framework.shiro.util.AuthorizationUtils;
|
|||
import com.ruoyi.system.service.*;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.ModelMap;
|
||||
|
|
@ -100,4 +101,46 @@ public class SysIdentifierController extends BaseController
|
|||
identifier.setUpdateBy(getLoginName());
|
||||
return toAjax(iSysIdentifierService.updateUser(identifier));
|
||||
}
|
||||
|
||||
@PostMapping("/remove")
|
||||
@ResponseBody
|
||||
public AjaxResult remove(String ids)
|
||||
{
|
||||
|
||||
return toAjax(iSysIdentifierService.deleteRadarByIds(ids));
|
||||
}
|
||||
|
||||
@PostMapping("/export")
|
||||
@ResponseBody
|
||||
public AjaxResult export(SysIdentifier sysIdentifier)
|
||||
{
|
||||
List<SysIdentifier> list = iSysIdentifierService.selectIdentifierList(sysIdentifier);;
|
||||
List<IdentifierExcel> collect = list.stream().map(identifier -> {
|
||||
IdentifierExcel normalExcel = new IdentifierExcel();
|
||||
BeanUtils.copyProperties(identifier, normalExcel);
|
||||
return normalExcel;
|
||||
}
|
||||
).collect(Collectors.toList());
|
||||
ExcelUtil<IdentifierExcel> util = new ExcelUtil<IdentifierExcel>(IdentifierExcel.class);
|
||||
return util.exportExcel(collect, "高温标识器配置");
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/importTemplate")
|
||||
@ResponseBody
|
||||
public AjaxResult importTemplate()
|
||||
{
|
||||
ExcelUtil<IdentifierExcel> util = new ExcelUtil<IdentifierExcel>(IdentifierExcel.class);
|
||||
return util.importTemplateExcel("常温标识器配置");
|
||||
}
|
||||
|
||||
@PostMapping("/importData")
|
||||
@ResponseBody
|
||||
public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
|
||||
{
|
||||
ExcelUtil<IdentifierExcel> util = new ExcelUtil<IdentifierExcel>(IdentifierExcel.class);
|
||||
List<IdentifierExcel> identifierList = util.importExcel(file.getInputStream());
|
||||
String message = iSysIdentifierService.importData(identifierList, updateSupport);
|
||||
return AjaxResult.success(message);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
package com.ruoyi.web.controller.system;
|
||||
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.domain.entity.SysRadar;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.system.service.ISysRadarService;
|
||||
import com.ruoyi.system.service.ISysUserService;
|
||||
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.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 雷达配置
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Controller
|
||||
@RequestMapping("/system/logo")
|
||||
public class SysLogoController extends BaseController
|
||||
{
|
||||
private String prefix = "system/logo";
|
||||
|
||||
|
||||
@Autowired
|
||||
private ISysUserService userService;
|
||||
@GetMapping()
|
||||
public String user()
|
||||
{
|
||||
return prefix + "/logo";
|
||||
}
|
||||
|
||||
@PostMapping("/list")
|
||||
@ResponseBody
|
||||
public TableDataInfo list(SysUser user)
|
||||
{
|
||||
startPage();
|
||||
List<SysUser> list = userService.selectUserList(user);
|
||||
return getDataTable(list);
|
||||
}
|
||||
}
|
||||
|
|
@ -73,10 +73,10 @@ public class SysPoliceController extends BaseController
|
|||
*/
|
||||
@PostMapping("/add")
|
||||
@ResponseBody
|
||||
public AjaxResult addSave(@Validated SysPolice sysPolice)
|
||||
public AjaxResult addSave(@Validated SysRadar sysPolice)
|
||||
{
|
||||
sysPolice.setCreateBy(getLoginName());
|
||||
return toAjax(sysPoliceService.insertSysPolice(sysPolice));
|
||||
return toAjax(radarService.insertRadar(sysPolice));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -130,17 +130,10 @@ public class SysProfileController extends BaseController
|
|||
{
|
||||
SysUser currentUser = getSysUser();
|
||||
currentUser.setUserName(user.getUserName());
|
||||
currentUser.setLoginName(user.getLoginName());
|
||||
currentUser.setEmail(user.getEmail());
|
||||
currentUser.setPhonenumber(user.getPhonenumber());
|
||||
currentUser.setSex(user.getSex());
|
||||
if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(currentUser))
|
||||
{
|
||||
return error("修改用户'" + currentUser.getLoginName() + "'失败,手机号码已存在");
|
||||
}
|
||||
else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(currentUser))
|
||||
{
|
||||
return error("修改用户'" + currentUser.getLoginName() + "'失败,邮箱账号已存在");
|
||||
}
|
||||
if (userService.updateUserInfo(currentUser) > 0)
|
||||
{
|
||||
setSysUser(userService.selectUserById(currentUser.getUserId()));
|
||||
|
|
|
|||
|
|
@ -0,0 +1,177 @@
|
|||
package com.ruoyi.web.controller.system;
|
||||
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.config.RuoYiConfig;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.common.utils.ShiroUtils;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.utils.file.FileUploadUtils;
|
||||
import com.ruoyi.common.utils.file.MimeTypeUtils;
|
||||
import com.ruoyi.framework.shiro.service.SysPasswordService;
|
||||
import com.ruoyi.system.service.ISysUserService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
/**
|
||||
* 个人信息 业务处理
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
@Controller
|
||||
@RequestMapping("/system/user/profileEdit")
|
||||
public class SysProfileEditController extends BaseController
|
||||
{
|
||||
private static final Logger log = LoggerFactory.getLogger(SysProfileEditController.class);
|
||||
|
||||
private String prefix = "system/user/profileEdit";
|
||||
|
||||
@Autowired
|
||||
private ISysUserService userService;
|
||||
|
||||
@Autowired
|
||||
private SysPasswordService passwordService;
|
||||
|
||||
/**
|
||||
* 个人信息
|
||||
*/
|
||||
@GetMapping()
|
||||
public String profile(ModelMap mmap)
|
||||
{
|
||||
SysUser user = getSysUser();
|
||||
mmap.put("user", user);
|
||||
mmap.put("roleGroup", userService.selectUserRoleGroup(user.getUserId()));
|
||||
mmap.put("postGroup", userService.selectUserPostGroup(user.getUserId()));
|
||||
return prefix + "/profileEdit";
|
||||
}
|
||||
|
||||
@GetMapping("/checkPassword")
|
||||
@ResponseBody
|
||||
public boolean checkPassword(String password)
|
||||
{
|
||||
SysUser user = getSysUser();
|
||||
return passwordService.matches(user, password);
|
||||
}
|
||||
|
||||
@GetMapping("/resetPwd")
|
||||
public String resetPwd(ModelMap mmap)
|
||||
{
|
||||
SysUser user = getSysUser();
|
||||
mmap.put("user", userService.selectUserById(user.getUserId()));
|
||||
return prefix + "/resetPwd";
|
||||
}
|
||||
|
||||
@Log(title = "重置密码", businessType = BusinessType.UPDATE)
|
||||
@PostMapping("/resetPwd")
|
||||
@ResponseBody
|
||||
public AjaxResult resetPwd(String oldPassword, String newPassword)
|
||||
{
|
||||
SysUser user = getSysUser();
|
||||
if (!passwordService.matches(user, oldPassword))
|
||||
{
|
||||
return error("修改密码失败,旧密码错误");
|
||||
}
|
||||
if (passwordService.matches(user, newPassword))
|
||||
{
|
||||
return error("新密码不能与旧密码相同");
|
||||
}
|
||||
user.setSalt(ShiroUtils.randomSalt());
|
||||
user.setPassword(passwordService.encryptPassword(user.getLoginName(), newPassword, user.getSalt()));
|
||||
user.setPwdUpdateDate(DateUtils.getNowDate());
|
||||
if (userService.resetUserPwd(user) > 0)
|
||||
{
|
||||
setSysUser(userService.selectUserById(user.getUserId()));
|
||||
return success();
|
||||
}
|
||||
return error("修改密码异常,请联系管理员");
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改用户
|
||||
*/
|
||||
@GetMapping("/edit")
|
||||
public String edit(ModelMap mmap)
|
||||
{
|
||||
SysUser user = getSysUser();
|
||||
mmap.put("user", userService.selectUserById(user.getUserId()));
|
||||
return prefix + "/edit";
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改头像
|
||||
*/
|
||||
@GetMapping("/avatar")
|
||||
public String avatar(ModelMap mmap)
|
||||
{
|
||||
SysUser user = getSysUser();
|
||||
mmap.put("user", userService.selectUserById(user.getUserId()));
|
||||
return prefix + "/avatar";
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改用户
|
||||
*/
|
||||
@Log(title = "个人信息", businessType = BusinessType.UPDATE)
|
||||
@PostMapping("/update")
|
||||
@ResponseBody
|
||||
public AjaxResult update(SysUser user)
|
||||
{
|
||||
SysUser currentUser = getSysUser();
|
||||
currentUser.setUserName(user.getUserName());
|
||||
currentUser.setEmail(user.getEmail());
|
||||
currentUser.setPhonenumber(user.getPhonenumber());
|
||||
currentUser.setSex(user.getSex());
|
||||
if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(currentUser))
|
||||
{
|
||||
return error("修改用户'" + currentUser.getLoginName() + "'失败,手机号码已存在");
|
||||
}
|
||||
else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(currentUser))
|
||||
{
|
||||
return error("修改用户'" + currentUser.getLoginName() + "'失败,邮箱账号已存在");
|
||||
}
|
||||
if (userService.updateUserInfo(currentUser) > 0)
|
||||
{
|
||||
setSysUser(userService.selectUserById(currentUser.getUserId()));
|
||||
return success();
|
||||
}
|
||||
return error();
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存头像
|
||||
*/
|
||||
@Log(title = "个人信息", businessType = BusinessType.UPDATE)
|
||||
@PostMapping("/updateAvatar")
|
||||
@ResponseBody
|
||||
public AjaxResult updateAvatar(@RequestParam("avatarfile") MultipartFile file)
|
||||
{
|
||||
SysUser currentUser = getSysUser();
|
||||
try
|
||||
{
|
||||
if (!file.isEmpty())
|
||||
{
|
||||
String avatar = FileUploadUtils.upload(RuoYiConfig.getAvatarPath(), file, MimeTypeUtils.IMAGE_EXTENSION);
|
||||
currentUser.setAvatar(avatar);
|
||||
if (userService.updateUserInfo(currentUser) > 0)
|
||||
{
|
||||
setSysUser(userService.selectUserById(currentUser.getUserId()));
|
||||
return success();
|
||||
}
|
||||
}
|
||||
return error();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
log.error("修改头像失败!", e);
|
||||
return error(e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4,10 +4,7 @@ import com.ruoyi.common.annotation.Log;
|
|||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.domain.Ztree;
|
||||
import com.ruoyi.common.core.domain.entity.SysDept;
|
||||
import com.ruoyi.common.core.domain.entity.SysRadar;
|
||||
import com.ruoyi.common.core.domain.entity.SysRole;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
import com.ruoyi.common.core.domain.entity.*;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.text.Convert;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
|
|
@ -19,6 +16,7 @@ import com.ruoyi.framework.shiro.util.AuthorizationUtils;
|
|||
import com.ruoyi.system.service.*;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.ModelMap;
|
||||
|
|
@ -105,4 +103,46 @@ public class SysRadarController extends BaseController
|
|||
return toAjax(radarService.updateUser(radar));
|
||||
}
|
||||
|
||||
@PostMapping("/remove")
|
||||
@ResponseBody
|
||||
public AjaxResult remove(String ids)
|
||||
{
|
||||
|
||||
return toAjax(radarService.deleteRadarByIds(ids));
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/export")
|
||||
@ResponseBody
|
||||
public AjaxResult export(SysRadar sysRadar)
|
||||
{
|
||||
List<SysRadar> list = radarService.selectRadarList(sysRadar);;
|
||||
List<RadarExcel> collect = list.stream().map(identifier -> {
|
||||
RadarExcel normalExcel = new RadarExcel();
|
||||
BeanUtils.copyProperties(identifier, normalExcel);
|
||||
return normalExcel;
|
||||
}
|
||||
).collect(Collectors.toList());
|
||||
ExcelUtil<RadarExcel> util = new ExcelUtil<RadarExcel>(RadarExcel.class);
|
||||
return util.exportExcel(collect, "雷达配置");
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/importTemplate")
|
||||
@ResponseBody
|
||||
public AjaxResult importTemplate()
|
||||
{
|
||||
ExcelUtil<RadarExcel> util = new ExcelUtil<RadarExcel>(RadarExcel.class);
|
||||
return util.importTemplateExcel("雷达配置");
|
||||
}
|
||||
|
||||
@PostMapping("/importData")
|
||||
@ResponseBody
|
||||
public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
|
||||
{
|
||||
ExcelUtil<RadarExcel> util = new ExcelUtil<RadarExcel>(RadarExcel.class);
|
||||
List<RadarExcel> radarList = util.importExcel(file.getInputStream());
|
||||
String message = radarService.importData(radarList, updateSupport);
|
||||
return AjaxResult.success(message);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,12 +1,15 @@
|
|||
package com.ruoyi.web.core.config;
|
||||
|
||||
import com.ruoyi.common.core.domain.entity.DataResponse;
|
||||
import com.ruoyi.common.core.domain.entity.PrimaryRadarData;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.websocket.*;
|
||||
import javax.websocket.server.ServerEndpoint;
|
||||
import java.io.IOException;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
@ServerEndpoint(value="/websocket",configurator = WebSocketConfig.class)
|
||||
|
|
@ -35,10 +38,10 @@ public class RadarStatusWebSocket {
|
|||
}
|
||||
}
|
||||
|
||||
public static void sendToAll(PrimaryRadarData primaryRadarData) {
|
||||
public static void sendToAll(TableDataInfo dataResponse) {
|
||||
for (Session session : sessions) {
|
||||
try {
|
||||
session.getBasicRemote().sendObject(primaryRadarData);
|
||||
session.getBasicRemote().sendObject(dataResponse);
|
||||
} catch (IOException | EncodeException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,9 +6,9 @@ spring:
|
|||
druid:
|
||||
# 主库数据源
|
||||
master:
|
||||
url: jdbc:mysql://39.104.15.118:3306/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
|
||||
url: jdbc:mysql://localhost:3306/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
|
||||
username: root
|
||||
password: Orderfood@2022
|
||||
password: 12345678
|
||||
# 从库数据源
|
||||
slave:
|
||||
# 从数据源开关/默认关闭
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
<!-- 日志存放路径 -->
|
||||
<property name="log.path" value="/Users/wyh/Documents/code/RuoYi-master/logs" />
|
||||
<property name="log.path" value="D:/project/logs" />
|
||||
<!-- 日志输出格式 -->
|
||||
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
|
||||
|
||||
|
|
|
|||
Binary file not shown.
|
After Width: | Height: | Size: 6.1 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.3 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.3 KiB |
|
|
@ -28,8 +28,10 @@
|
|||
</div>
|
||||
<a th:href="@{/index}">
|
||||
<li class="logo hidden-xs">
|
||||
<img th:src="@{/img/favicon.ico}" class="logo-img">
|
||||
<span class="logo-lg">第一钢铁厂</span>
|
||||
<a class="menuItem noactive" title="个人中心" th:href="@{/system/user/profile}">
|
||||
<img th:src="(${#strings.isEmpty(user.avatar)}) ? @{/img/favicon.ico} : @{${user.avatar}}" class="logo-img">
|
||||
</a>
|
||||
<span class="logo-lg">[[${user.userName}]]</span>
|
||||
</li>
|
||||
</a>
|
||||
<div class="sidebar-collapse">
|
||||
|
|
@ -74,113 +76,6 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<!-- <li th:if="${demoEnabled}">-->
|
||||
<!-- <a href="javascript:;"><i class="fa fa-desktop"></i><span class="nav-label">实例演示</span><span class="fa arrow"></span></a>-->
|
||||
<!-- <ul class="nav nav-second-level collapse">-->
|
||||
<!-- <li> <a>表单<span class="fa arrow"></span></a>-->
|
||||
<!-- <ul class="nav nav-third-level">-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/form/button}">按钮</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/form/grid}">栅格</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/form/select}">下拉框</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/form/timeline}">时间轴</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/form/progress_bars}">进度条</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/form/basic}">基本表单</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/form/cards}">卡片列表</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/form/jasny}">功能扩展</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/form/sortable}">拖动排序</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/form/invoice}">单据打印</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/form/labels_tips}">标签 & 提示</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/form/tabs_panels}">选项卡 & 面板</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/form/validate}">表单校验</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/form/wizard}">表单向导</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/form/upload}">文件上传</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/form/datetime}">日期和时间</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/form/summernote}">富文本编辑器</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/form/duallistbox}">左右互选组件</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/form/autocomplete}">搜索自动补全</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/form/cxselect}">多级联动下拉</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/form/localrefresh}">Ajax局部刷新</a></li>-->
|
||||
<!-- </ul>-->
|
||||
<!-- </li>-->
|
||||
<!-- <li> <a>表格<span class="fa arrow"></span></a>-->
|
||||
<!-- <ul class="nav nav-third-level">-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/search}">查询条件</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/footer}">数据汇总</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/groupHeader}">组合表头</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/export}">表格导出</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/exportSelected}">导出选择列</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/remember}">翻页记住选择</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/pageGo}">跳转至指定页</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/params}">自定义查询参数</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/multi}">初始多表格</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/button}">点击按钮加载表格</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/data}">直接加载表格数据</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/fixedColumns}">表格冻结列</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/event}">自定义触发事件</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/headerStyle}">表格标题格式化</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/detail}">表格细节视图</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/child}">表格父子视图</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/image}">表格图片预览</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/curd}">动态增删改查</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/reorderRows}">表格行拖拽操作</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/reorderColumns}">表格列拖拽操作</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/resizable}">表格列宽拖动</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/editable}">表格行内编辑</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/subdata}">主子表提交</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/refresh}">表格自动刷新</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/print}">表格打印配置</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/dynamicColumns}">表格动态列</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/customView}">自定义视图分页</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/asynTree}">异步加载表格树</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/table/other}">表格其他操作</a></li>-->
|
||||
<!-- </ul>-->
|
||||
<!-- </li>-->
|
||||
<!-- <li> <a>弹框<span class="fa arrow"></span></a>-->
|
||||
<!-- <ul class="nav nav-third-level">-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/modal/dialog}">模态窗口</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/modal/layer}">弹层组件</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/modal/table}">弹层表格</a></li>-->
|
||||
<!-- </ul>-->
|
||||
<!-- </li>-->
|
||||
<!-- <li> <a>操作<span class="fa arrow"></span></a>-->
|
||||
<!-- <ul class="nav nav-third-level">-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/operate/table}">表格</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/operate/other}">其他</a></li>-->
|
||||
<!-- </ul>-->
|
||||
<!-- </li>-->
|
||||
<!-- <li> <a>报表<span class="fa arrow"></span></a>-->
|
||||
<!-- <ul class="nav nav-third-level">-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/report/echarts}">百度ECharts</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/report/peity}">peity</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/report/sparkline}">sparkline</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/report/metrics}">图表组合</a></li>-->
|
||||
<!-- </ul>-->
|
||||
<!-- </li>-->
|
||||
<!-- <li> <a>图标<span class="fa arrow"></span></a>-->
|
||||
<!-- <ul class="nav nav-third-level">-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/icon/fontawesome}">Font Awesome</a></li>-->
|
||||
<!-- <li><a class="menuItem" th:href="@{/demo/icon/glyphicons}">Glyphicons</a></li>-->
|
||||
<!-- </ul>-->
|
||||
<!-- </li>-->
|
||||
<!-- <li>-->
|
||||
<!-- <a href="javascript:;"><i class="fa fa-sitemap"></i>四层菜单<span class="fa arrow"></span></a>-->
|
||||
<!-- <ul class="nav nav-third-level collapse">-->
|
||||
<!-- <li>-->
|
||||
<!-- <a href="javascript:;" id="damian">三级菜单1<span class="fa arrow"></span></a>-->
|
||||
<!-- <ul class="nav nav-third-level">-->
|
||||
<!-- <li>-->
|
||||
<!-- <a href="javascript:;">四级菜单1</a>-->
|
||||
<!-- </li>-->
|
||||
<!-- <li>-->
|
||||
<!-- <a href="javascript:;">四级菜单2</a>-->
|
||||
<!-- </li>-->
|
||||
<!-- </ul>-->
|
||||
<!-- </li>-->
|
||||
<!-- <li><a href="javascript:;">三级菜单2</a></li>-->
|
||||
<!-- </ul>-->
|
||||
<!-- </li>-->
|
||||
<!-- </ul>-->
|
||||
<!-- </li>-->
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
|
|
@ -196,38 +91,6 @@
|
|||
</a>
|
||||
</div>
|
||||
<ul class="nav navbar-top-links navbar-right welcome-message">
|
||||
<!-- <li><a data-toggle="tooltip" data-trigger="hover" data-placement="bottom" title="开发文档" href="http://doc.ruoyi.vip/ruoyi" target="_blank"><i class="fa fa-question-circle"></i></a></li>-->
|
||||
<!-- <li><a data-toggle="tooltip" data-trigger="hover" data-placement="bottom" title="锁定屏幕" href="javascript:;" id="lockScreen"><i class="fa fa-lock"></i></a></li>-->
|
||||
<!-- <li><a data-toggle="tooltip" data-trigger="hover" data-placement="bottom" title="全屏显示" href="javascript:;" id="fullScreen"><i class="fa fa-arrows-alt"></i></a></li>-->
|
||||
<!-- <li class="dropdown user-menu">-->
|
||||
<!-- <a href="javascript:void(0)" class="dropdown-toggle" data-hover="dropdown">-->
|
||||
<!-- <img th:src="(${#strings.isEmpty(user.avatar)}) ? @{/img/profile.jpg} : @{${user.avatar}}" th:onerror="this.src='img/profile.jpg'" class="user-image">-->
|
||||
<!-- <span class="hidden-xs">[[${#strings.defaultString(user.userName, '-')}]]</span>-->
|
||||
<!-- </a>-->
|
||||
<!-- <ul class="dropdown-menu">-->
|
||||
<!-- <li class="mt5">-->
|
||||
<!-- <a th:href="@{/system/user/profile}" class="menuItem noactive">-->
|
||||
<!-- <i class="fa fa-user"></i> 个人中心</a>-->
|
||||
<!-- </li>-->
|
||||
<!-- <li>-->
|
||||
<!-- <a onclick="resetPwd()">-->
|
||||
<!-- <i class="fa fa-key"></i> 修改密码</a>-->
|
||||
<!-- </li>-->
|
||||
<!-- <li>-->
|
||||
<!-- <a onclick="switchSkin()">-->
|
||||
<!-- <i class="fa fa-dashboard"></i> 切换主题</a>-->
|
||||
<!-- </li>-->
|
||||
<!-- <li>-->
|
||||
<!-- <a onclick="toggleMenu()">-->
|
||||
<!-- <i class="fa fa-toggle-off"></i> 横向菜单</a>-->
|
||||
<!-- </li>-->
|
||||
<!-- <li class="divider"></li>-->
|
||||
<!-- <li>-->
|
||||
<!-- <a th:href="@{logout}">-->
|
||||
<!-- <i class="fa fa-sign-out"></i> 退出登录</a>-->
|
||||
<!-- </li>-->
|
||||
<!-- </ul>-->
|
||||
<!-- </li>-->
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -42,22 +42,6 @@
|
|||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<!-- <div class="btn-group-sm" id="toolbar" role="group">-->
|
||||
<!--<!– <a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="monitor:job:add">–>-->
|
||||
<!--<!– <i class="fa fa-plus"></i> 新增–>-->
|
||||
<!--<!– </a>–>-->
|
||||
<!--<!– <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="monitor:job:edit">–>-->
|
||||
<!--<!– <i class="fa fa-edit"></i> 修改–>-->
|
||||
<!--<!– </a>–>-->
|
||||
<!--<!– <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="monitor:job:remove">–>-->
|
||||
<!--<!– <i class="fa fa-remove"></i> 删除–>-->
|
||||
<!--<!– </a>–>-->
|
||||
<!-- <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="monitor:job:export">-->
|
||||
<!-- <i class="fa fa-download"></i> 导出-->
|
||||
<!-- </a>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<div class="col-sm-12 select-table table-striped">
|
||||
<table id="bootstrap-table"></table>
|
||||
</div>
|
||||
|
|
@ -91,10 +75,14 @@
|
|||
title: '序号'
|
||||
},
|
||||
{
|
||||
field: 'updateTime',
|
||||
field: 'createTime',
|
||||
title: '时间',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
field: 'tagId',
|
||||
title: '标识器ID',
|
||||
},
|
||||
{
|
||||
field: 'value4',
|
||||
title: '信号值',
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">标识器ID1:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="identifierId" placeholder="请输入高温标识器ID1" class="form-control" type="text" maxlength="30" required>
|
||||
<input name="identifierId" placeholder="请输入高温标识器ID1" class="form-control" type="text" maxlength="30">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -22,7 +22,7 @@
|
|||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">标识器ID2:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="identifierTwo" placeholder="请输入高温标识器ID2" class="form-control" type="text" maxlength="30" required>
|
||||
<input name="identifierTwo" placeholder="请输入高温标识器ID2" class="form-control" type="text" maxlength="30">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -68,7 +68,7 @@
|
|||
$.operate.saveTab(prefix + "/add", data);
|
||||
}
|
||||
//关闭弹窗
|
||||
closeItem();
|
||||
// closeItem();
|
||||
//刷新父页面
|
||||
parent.location.reload();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">标识器ID1:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="identifierId" placeholder="请输入标识器ID1" class="form-control" type="text" maxlength="30" th:field="*{identifierId}" required>
|
||||
<input name="identifierId" placeholder="请输入标识器ID1" class="form-control" type="text" maxlength="30" th:field="*{identifierId}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -23,7 +23,7 @@
|
|||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">标识器ID2:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="identifierTwo" placeholder="请输入标识器ID2" class="form-control" type="text" maxlength="30" th:field="*{identifierTwo}"required>
|
||||
<input name="identifierTwo" placeholder="请输入标识器ID2" class="form-control" type="text" maxlength="30" th:field="*{identifierTwo}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">铁包号:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="ladleNumber" placeholder="请输入铁包号" class="form-control" type="text" maxlength="30" th:field="*{ladleNumber}" required>
|
||||
<input name="ladleNumber" placeholder="请输入铁包号" class="form-control" type="text" maxlength="30" th:field="*{ladleNumber}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -61,7 +61,7 @@
|
|||
var data = $("#form-user-edit").serializeArray();
|
||||
$.operate.saveTab(prefix + "/edit", data);
|
||||
}
|
||||
closeItem();
|
||||
// closeItem();
|
||||
//刷新父页面
|
||||
parent.location.reload();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,6 +53,12 @@
|
|||
<a class="btn btn-success" onclick="$.operate.add()" >
|
||||
<i class="fa fa-plus"></i> 新增
|
||||
</a>
|
||||
<a class="btn btn-info" onclick="$.table.importExcel()" >
|
||||
<i class="fa fa-upload"></i> 导入
|
||||
</a>
|
||||
<a class="btn btn-warning" onclick="$.table.exportExcel()">
|
||||
<i class="fa fa-download"></i> 导出
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-12 select-table table-striped">
|
||||
|
|
@ -101,7 +107,7 @@
|
|||
importTemplateUrl: prefix + "/importTemplate",
|
||||
sortName: "createTime",
|
||||
sortOrder: "desc",
|
||||
modalName: "雷达",
|
||||
modalName: "高温标识器配置",
|
||||
columns: [{
|
||||
checkbox: true
|
||||
},
|
||||
|
|
@ -129,7 +135,7 @@
|
|||
if (row.userId != 1) {
|
||||
var actions = [];
|
||||
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
|
||||
// actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.userId + '\')"><i class="fa fa-remove"></i>删除</a> ');
|
||||
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
|
||||
// var more = [];
|
||||
// more.push("<a class='btn btn-default btn-xs " + resetPwdFlag + "' href='javascript:void(0)' onclick='resetPwd(" + row.userId + ")'><i class='fa fa-key'></i>重置密码</a> ");
|
||||
// more.push("<a class='btn btn-default btn-xs " + editFlag + "' href='javascript:void(0)' onclick='authRole(" + row.userId + ")'><i class='fa fa-check-square-o'></i>分配角色</a>");
|
||||
|
|
@ -235,7 +241,7 @@
|
|||
<div class="col-xs-offset-1">
|
||||
<input type="file" id="file" name="file"/>
|
||||
<div class="mt10 pt5">
|
||||
<input type="checkbox" id="updateSupport" name="updateSupport" title="如果登录账户已经存在,更新这条数据。"> 是否更新已经存在的用户数据
|
||||
<input type="checkbox" id="updateSupport" name="updateSupport" title="如果数据已经存在,更新这条数据。"> 是否更新已经存在的数据
|
||||
<a onclick="$.table.importTemplate()" class="btn btn-default btn-xs"><i class="fa fa-file-excel-o"></i> 下载模板</a>
|
||||
</div>
|
||||
<font color="red" class="pull-left mt10">
|
||||
|
|
|
|||
|
|
@ -0,0 +1,35 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
|
||||
<head>
|
||||
<th:block th:include="include :: header('用户个人信息')" />
|
||||
<style type="text/css">.user-info-head{position:relative;display:inline-block;}.user-info-head:hover:after{content:'\f030';position:absolute;left:0;right:0;top:0;bottom:0;color:#eee;background:rgba(0,0,0,0.5);font-family:FontAwesome;font-size:24px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;cursor:pointer;line-height:110px;border-radius:50%;}</style>
|
||||
</head>
|
||||
|
||||
<body class="fixed-sidebar full-height-layout gray-bg" th:classappend="${isMobile} ? 'canvas-menu'" style="overflow: hidden">
|
||||
<div id="wrapper">
|
||||
<nav class="navbar-default navbar-static-side" role="navigation">
|
||||
<div class="sidebar-collapse">
|
||||
<li>-->
|
||||
<div class="user-panel">
|
||||
<a class="menuItem noactive" title="个人中心" th:href="@{/system/user/profile}">
|
||||
<div class="hide" th:text="个人中心"></div>
|
||||
<div class="pull-left image">
|
||||
<img th:src="(${#strings.isEmpty(user.avatar)}) ? @{/img/profile.jpg} : @{${user.avatar}}" th:onerror="this.src='img/profile.jpg'" class="img-circle" alt="User Image">
|
||||
</div>
|
||||
</a>
|
||||
<div class="pull-left info">
|
||||
<p>[[${user.loginName}]]</p>
|
||||
<a href="javascript:;"><i class="fa fa-circle text-success"></i> 在线</a>
|
||||
<a th:href="@{logout}" style="padding-left:5px;"><i class="fa fa-sign-out text-danger"></i> 注销</a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<a class="menuItem" th:href="@{/system/main}"><i class="fa fa-home"></i> <span class="nav-label">状态</span> </a>
|
||||
</li>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
<th:block th:include="include :: footer" />
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">标识器ID1:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="identifierId" placeholder="请输入常温标识器ID1" class="form-control" type="text" maxlength="30" required>
|
||||
<input name="identifierId" placeholder="请输入常温标识器ID1" class="form-control" type="text" maxlength="30">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -22,7 +22,7 @@
|
|||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">标识器ID2:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="identifierTwo" placeholder="请输入常温标识器ID2" class="form-control" type="text" maxlength="30" required>
|
||||
<input name="identifierTwo" placeholder="请输入常温标识器ID2" class="form-control" type="text" maxlength="30">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -32,7 +32,7 @@
|
|||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">标识器ID3:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="identifierThree" placeholder="请输入常温标识器ID3" class="form-control" type="text" maxlength="30" required>
|
||||
<input name="identifierThree" placeholder="请输入常温标识器ID3" class="form-control" type="text" maxlength="30">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -42,7 +42,7 @@
|
|||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">标识器ID4:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="identifierFour" placeholder="请输入常温标识器ID4" class="form-control" type="text" maxlength="30" required>
|
||||
<input name="identifierFour" placeholder="请输入常温标识器ID4" class="form-control" type="text" maxlength="30">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -52,7 +52,7 @@
|
|||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">铁包号:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="ladleNumber" placeholder="请输入铁包号" class="form-control" type="text" maxlength="30" required>
|
||||
<input name="ladleNumber" placeholder="请输入铁包号" class="form-control" type="text" maxlength="30">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -88,7 +88,7 @@
|
|||
$.operate.saveTab(prefix + "/add", data);
|
||||
}
|
||||
//关闭弹窗
|
||||
closeItem();
|
||||
// closeItem();
|
||||
//刷新父页面
|
||||
parent.location.reload();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">标识器ID1:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="identifierId" placeholder="请输入常温标识器ID1" class="form-control" type="text" maxlength="30" th:field="*{identifierId}" required>
|
||||
<input name="identifierId" placeholder="请输入常温标识器ID1" class="form-control" type="text" maxlength="30" th:field="*{identifierId}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -23,7 +23,7 @@
|
|||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">标识器ID2:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="identifierTwo" placeholder="请输入常温标识器ID2" class="form-control" type="text" maxlength="30" th:field="*{identifierTwo}" required>
|
||||
<input name="identifierTwo" placeholder="请输入常温标识器ID2" class="form-control" type="text" maxlength="30" th:field="*{identifierTwo}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">标识器ID3:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="identifierThree" placeholder="请输入常温标识器ID3" class="form-control" type="text" maxlength="30" th:field="*{identifierThree}" required>
|
||||
<input name="identifierThree" placeholder="请输入常温标识器ID3" class="form-control" type="text" maxlength="30" th:field="*{identifierThree}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -43,7 +43,7 @@
|
|||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">标识器ID4:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="identifierFour" placeholder="请输入常温标识器ID4" class="form-control" type="text" maxlength="30" th:field="*{identifierFour}" required>
|
||||
<input name="identifierFour" placeholder="请输入常温标识器ID4" class="form-control" type="text" maxlength="30" th:field="*{identifierFour}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -53,7 +53,7 @@
|
|||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">铁包号:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="ladleNumber" placeholder="请输入铁包号" class="form-control" type="text" maxlength="30" th:field="*{ladleNumber}" required>
|
||||
<input name="ladleNumber" placeholder="请输入铁包号" class="form-control" type="text" maxlength="30" th:field="*{ladleNumber}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -77,8 +77,8 @@
|
|||
var data = $("#form-user-edit").serializeArray();
|
||||
$.operate.saveTab(prefix + "/edit", data);
|
||||
}
|
||||
closeItem();
|
||||
//刷新父页面
|
||||
// closeItem();
|
||||
// 刷新父页面
|
||||
parent.location.reload();
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -31,6 +31,12 @@
|
|||
<a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="system:user:add">
|
||||
<i class="fa fa-plus"></i> 新增
|
||||
</a>
|
||||
<a class="btn btn-info" onclick="$.table.importExcel()" >
|
||||
<i class="fa fa-upload"></i> 导入
|
||||
</a>
|
||||
<a class="btn btn-warning" onclick="$.table.exportExcel()">
|
||||
<i class="fa fa-download"></i> 导出
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-sm-12 select-table table-striped">
|
||||
<table id="bootstrap-table"></table>
|
||||
|
|
@ -78,7 +84,7 @@
|
|||
importTemplateUrl: prefix + "/importTemplate",
|
||||
sortName: "createTime",
|
||||
sortOrder: "desc",
|
||||
modalName: "用户",
|
||||
modalName: "常温标识器配置",
|
||||
columns: [{
|
||||
checkbox: true
|
||||
},
|
||||
|
|
@ -114,6 +120,7 @@
|
|||
if (row.userId != 1) {
|
||||
var actions = [];
|
||||
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
|
||||
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
|
||||
return actions.join('');
|
||||
} else {
|
||||
return "";
|
||||
|
|
@ -124,22 +131,6 @@
|
|||
$.table.init(options);
|
||||
}
|
||||
|
||||
function queryDeptTree()
|
||||
{
|
||||
var url = ctx + "system/user/deptTreeData";
|
||||
var options = {
|
||||
url: url,
|
||||
expandLevel: 2,
|
||||
onClick : zOnClick
|
||||
};
|
||||
$.tree.init(options);
|
||||
|
||||
function zOnClick(event, treeId, treeNode) {
|
||||
$("#deptId").val(treeNode.id);
|
||||
$("#parentId").val(treeNode.pId);
|
||||
$.table.search();
|
||||
}
|
||||
}
|
||||
|
||||
$('#btnExpand').click(function() {
|
||||
$._tree.expandAll(true);
|
||||
|
|
@ -157,34 +148,6 @@
|
|||
queryDeptTree();
|
||||
});
|
||||
|
||||
/* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
|
||||
function resetPre() {
|
||||
resetDate();
|
||||
$("#user-form")[0].reset();
|
||||
$("#deptId").val("");
|
||||
$("#parentId").val("");
|
||||
$(".curSelectedNode").removeClass("curSelectedNode");
|
||||
$.table.search();
|
||||
}
|
||||
|
||||
/* 用户管理-部门 */
|
||||
function dept() {
|
||||
var url = ctx + "system/dept";
|
||||
$.modal.openTab("部门管理", url);
|
||||
}
|
||||
|
||||
/* 用户管理-重置密码 */
|
||||
function resetPwd(userId) {
|
||||
var url = prefix + '/resetPwd/' + userId;
|
||||
$.modal.open("重置密码", url, '800', '300');
|
||||
}
|
||||
|
||||
/* 用户管理-分配角色 */
|
||||
function authRole(userId) {
|
||||
var url = prefix + '/authRole/' + userId;
|
||||
$.modal.openTab("用户分配角色", url);
|
||||
}
|
||||
|
||||
/* 用户状态显示 */
|
||||
function statusTools(row) {
|
||||
if (row.status == 1) {
|
||||
|
|
@ -194,19 +157,6 @@
|
|||
}
|
||||
}
|
||||
|
||||
/* 用户管理-停用 */
|
||||
function disable(userId) {
|
||||
$.modal.confirm("确认要停用用户吗?", function() {
|
||||
$.operate.post(prefix + "/changeStatus", { "userId": userId, "status": 1 });
|
||||
})
|
||||
}
|
||||
|
||||
/* 用户管理启用 */
|
||||
function enable(userId) {
|
||||
$.modal.confirm("确认要启用用户吗?", function() {
|
||||
$.operate.post(prefix + "/changeStatus", { "userId": userId, "status": 0 });
|
||||
})
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
<!-- 导入区域 -->
|
||||
|
|
@ -215,7 +165,7 @@
|
|||
<div class="col-xs-offset-1">
|
||||
<input type="file" id="file" name="file"/>
|
||||
<div class="mt10 pt5">
|
||||
<input type="checkbox" id="updateSupport" name="updateSupport" title="如果登录账户已经存在,更新这条数据。"> 是否更新已经存在的用户数据
|
||||
<input type="checkbox" id="updateSupport" name="updateSupport" title="如果数据已经存在,更新这条数据。"> 是否更新已经存在的数据
|
||||
<a onclick="$.table.importTemplate()" class="btn btn-default btn-xs"><i class="fa fa-file-excel-o"></i> 下载模板</a>
|
||||
</div>
|
||||
<font color="red" class="pull-left mt10">
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">工位:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="station" placeholder="请输入工位" class="form-control" type="text" maxlength="30" required>
|
||||
<input name="station" placeholder="请输入工位" class="form-control" type="text" maxlength="30" >
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -20,9 +20,9 @@
|
|||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">报警值:</label>
|
||||
<label class="col-sm-4 control-label is-required">报警值A:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="alarmValue" placeholder="请输入报警值" class="form-control" type="text" maxlength="30" required>
|
||||
<input name="alarmValue1" placeholder="请输入报警值A" class="form-control" type="text" maxlength="30" >
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -30,9 +30,29 @@
|
|||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">预设报警值:</label>
|
||||
<label class="col-sm-4 control-label is-required">报警值B:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="presetValue" placeholder="请输入预设报警值" class="form-control" type="text" maxlength="30" required>
|
||||
<input name="alarmValue2" placeholder="请输入报警值B" class="form-control" type="text" maxlength="30" >
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">报警值C:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="alarmValue3" placeholder="请输入报警值C" class="form-control" type="text" maxlength="30" >
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">报警值D:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="alarmValue4" placeholder="请输入报警值D" class="form-control" type="text" maxlength="30" required>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -68,7 +88,7 @@
|
|||
$.operate.saveTab(prefix + "/add", data);
|
||||
}
|
||||
//关闭弹窗
|
||||
closeItem();
|
||||
// closeItem();
|
||||
//刷新父页面
|
||||
parent.location.reload();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@
|
|||
var data = $("#form-user-edit").serializeArray();
|
||||
$.operate.saveTab(prefix + "/edit", data);
|
||||
}
|
||||
closeItem();
|
||||
// closeItem();
|
||||
//刷新父页面
|
||||
parent.location.reload();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,9 +11,9 @@
|
|||
<div class="row">
|
||||
|
||||
<div class="btn-group-sm" id="toolbar" role="group">
|
||||
<a class="btn btn-success" onclick="$.operate.add()" >
|
||||
<i class="fa fa-plus"></i> 新增
|
||||
</a>
|
||||
<!-- <a class="btn btn-success" onclick="$.operate.add()" >-->
|
||||
<!-- <i class="fa fa-plus"></i> 新增-->
|
||||
<!-- </a>-->
|
||||
<!-- <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="system:user:edit">-->
|
||||
<!-- <i class="fa fa-edit"></i> 修改-->
|
||||
<!-- </a>-->
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">雷达IP:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="radarIp" placeholder="请输入雷达IP" class="form-control" type="text" maxlength="30" required>
|
||||
<input name="radarIp" placeholder="请输入雷达IP" class="form-control" type="text" maxlength="30">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -22,7 +22,7 @@
|
|||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">雷达位置/工位:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="radarLocation" placeholder="请输入雷达位置/工位" class="form-control" type="text" maxlength="30" required>
|
||||
<input name="radarLocation" placeholder="请输入雷达位置/工位" class="form-control" type="text" maxlength="30">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -32,7 +32,7 @@
|
|||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">工位代号:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="stationCode" placeholder="请输入工位代号" class="form-control" type="text" maxlength="30" required>
|
||||
<input name="stationCode" placeholder="请输入工位代号" class="form-control" type="text" maxlength="30">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -42,7 +42,35 @@
|
|||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">工序:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="sort" placeholder="请输入工序" class="form-control" type="text" maxlength="30" required>
|
||||
<input name="sort" placeholder="请输入工序" class="form-control" type="text" maxlength="30">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">雷达ID:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="radarId" placeholder="请输入雷达ID" class="form-control" type="text" maxlength="30">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">雷达天线号:</label>
|
||||
<div class="col-sm-8">
|
||||
<!-- <input name="radarNum" placeholder="请输入雷达天线号" class="form-control" type="text" maxlength="30">-->
|
||||
<div class="col-sm-12">
|
||||
<label class="check-box">
|
||||
<input type="checkbox" name="radarNum" value="1" id="v1">1</label>
|
||||
<label class="check-box">
|
||||
<input type="checkbox" name="radarNum" value="2" id="v2">2</label>
|
||||
<label class="check-box">
|
||||
<input type="checkbox" name="radarNum" value="1,2" id="v3">全部</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -59,7 +87,10 @@
|
|||
<th:block th:include="include :: footer" />
|
||||
<th:block th:include="include :: select2-js" />
|
||||
<script>
|
||||
var prefix = ctx + "system/radar";
|
||||
|
||||
|
||||
|
||||
var prefix = ctx + "system/radar";
|
||||
|
||||
$("#form-radar-add").validate({
|
||||
onkeyup: false,
|
||||
|
|
@ -78,7 +109,7 @@
|
|||
$.operate.saveTab(prefix + "/add", data);
|
||||
}
|
||||
//关闭弹窗
|
||||
closeItem();
|
||||
// closeItem();
|
||||
//刷新父页面
|
||||
parent.location.reload();
|
||||
}
|
||||
|
|
@ -104,12 +135,54 @@
|
|||
$.modal.close(index);
|
||||
}
|
||||
|
||||
$(function() {
|
||||
$('#post').select2({
|
||||
placeholder: "请选择岗位",
|
||||
allowClear: true
|
||||
});
|
||||
})
|
||||
const checkboxAll = document.getElementById("v3");
|
||||
const checkbox1 = document.getElementById("v1");
|
||||
const checkbox2 = document.getElementById("v2");
|
||||
|
||||
checkboxAll.addEventListener("change", function() {
|
||||
checkbox1.checked = checkboxAll.checked;
|
||||
checkbox2.checked = checkboxAll.checked;
|
||||
|
||||
// 将选中的复选框的值作为参数传递给后端
|
||||
const selectedValues = [];
|
||||
if (checkbox1.checked) {
|
||||
selectedValues.push(checkbox1.value);
|
||||
}
|
||||
if (checkbox2.checked) {
|
||||
selectedValues.push(checkbox2.value);
|
||||
}
|
||||
|
||||
// 将selectedValues作为参数传递给后端
|
||||
// 例如,使用fetch发送POST请求
|
||||
// fetch("your-backend-url", {
|
||||
// method: "POST",
|
||||
// body: JSON.stringify(selectedValues),
|
||||
// headers: {
|
||||
// "Content-Type": "application/json"
|
||||
// }
|
||||
// })
|
||||
// .then(response => response.json())
|
||||
// .then(data => {
|
||||
// // 处理后端返回的数据
|
||||
// console.log(data);
|
||||
// })
|
||||
// .catch(error => {
|
||||
// // 处理错误
|
||||
// console.error(error);
|
||||
// });
|
||||
});
|
||||
|
||||
checkbox1.addEventListener("change", function() {
|
||||
if (!checkbox1.checked) {
|
||||
checkboxAll.checked = false;
|
||||
}
|
||||
});
|
||||
|
||||
checkbox2.addEventListener("change", function() {
|
||||
if (!checkbox2.checked) {
|
||||
checkboxAll.checked = false;
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -13,7 +13,7 @@
|
|||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">雷达Ip:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="radarIp" placeholder="请输入雷达Ip" class="form-control" type="text" maxlength="30" th:field="*{radarIp}" required>
|
||||
<input name="radarIp" placeholder="请输入雷达Ip" class="form-control" type="text" maxlength="30" th:field="*{radarIp}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -23,7 +23,7 @@
|
|||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">雷达位置/工位:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="radarLocation" placeholder="请输入雷达位置/工位" class="form-control" type="text" maxlength="30" th:field="*{radarLocation}"required>
|
||||
<input name="radarLocation" placeholder="请输入雷达位置/工位" class="form-control" type="text" maxlength="30" th:field="*{radarLocation}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">工位代号:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="stationCode" placeholder="请输入工位代号" class="form-control" type="text" maxlength="30" th:field="*{stationCode}" required>
|
||||
<input name="stationCode" placeholder="请输入工位代号" class="form-control" type="text" maxlength="30" th:field="*{stationCode}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -43,12 +43,31 @@
|
|||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">工序:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="sort" placeholder="请输入工序" class="form-control" type="text" maxlength="30" th:field="*{sort}" required>
|
||||
<input name="sort" placeholder="请输入工序" class="form-control" type="text" maxlength="30" th:field="*{sort}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">雷达ID:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="radarId" placeholder="请输入雷达ID" class="form-control" type="text" maxlength="30" th:field="*{radarId}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 control-label is-required">雷达天线号:</label>
|
||||
<div class="col-sm-8">
|
||||
<input name="radarNum" placeholder="请输入雷达天线号" class="form-control" type="text" maxlength="30" th:field="*{radarNum}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
<!-- <div class="row">-->
|
||||
|
|
@ -72,7 +91,7 @@
|
|||
var data = $("#form-user-edit").serializeArray();
|
||||
$.operate.saveTab(prefix + "/edit", data);
|
||||
}
|
||||
closeItem();
|
||||
// closeItem();
|
||||
//刷新父页面
|
||||
parent.location.reload();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -71,12 +71,12 @@
|
|||
<!-- <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:user:remove">-->
|
||||
<!-- <i class="fa fa-remove"></i> 删除-->
|
||||
<!-- </a>-->
|
||||
<!-- <a class="btn btn-info" onclick="$.table.importExcel()" shiro:hasPermission="system:user:import">-->
|
||||
<!-- <i class="fa fa-upload"></i> 导入-->
|
||||
<!-- </a>-->
|
||||
<!-- <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:user:export">-->
|
||||
<!-- <i class="fa fa-download"></i> 导出-->
|
||||
<!-- </a>-->
|
||||
<a class="btn btn-info" onclick="$.table.importExcel()" >
|
||||
<i class="fa fa-upload"></i> 导入
|
||||
</a>
|
||||
<a class="btn btn-warning" onclick="$.table.exportExcel()" >
|
||||
<i class="fa fa-download"></i> 导出
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-12 select-table table-striped">
|
||||
|
|
@ -146,6 +146,14 @@
|
|||
field: 'stationCode',
|
||||
title: '工位代号'
|
||||
},
|
||||
{
|
||||
field: 'radarId',
|
||||
title: '雷达ID'
|
||||
},
|
||||
{
|
||||
field: 'radarNum',
|
||||
title: '雷达天线号'
|
||||
},
|
||||
{
|
||||
field: 'sort',
|
||||
title: '工序',
|
||||
|
|
@ -157,7 +165,7 @@
|
|||
if (row.userId != 1) {
|
||||
var actions = [];
|
||||
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
|
||||
// actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.userId + '\')"><i class="fa fa-remove"></i>删除</a> ');
|
||||
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
|
||||
// var more = [];
|
||||
// more.push("<a class='btn btn-default btn-xs " + resetPwdFlag + "' href='javascript:void(0)' onclick='resetPwd(" + row.userId + ")'><i class='fa fa-key'></i>重置密码</a> ");
|
||||
// more.push("<a class='btn btn-default btn-xs " + editFlag + "' href='javascript:void(0)' onclick='authRole(" + row.userId + ")'><i class='fa fa-check-square-o'></i>分配角色</a>");
|
||||
|
|
@ -263,7 +271,7 @@
|
|||
<div class="col-xs-offset-1">
|
||||
<input type="file" id="file" name="file"/>
|
||||
<div class="mt10 pt5">
|
||||
<input type="checkbox" id="updateSupport" name="updateSupport" title="如果登录账户已经存在,更新这条数据。"> 是否更新已经存在的用户数据
|
||||
<input type="checkbox" id="updateSupport" name="updateSupport" title="如果数据已经存在,更新这条数据。"> 是否更新已经存在的数据
|
||||
<a onclick="$.table.importTemplate()" class="btn btn-default btn-xs"><i class="fa fa-file-excel-o"></i> 下载模板</a>
|
||||
</div>
|
||||
<font color="red" class="pull-left mt10">
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@
|
|||
$.table.init(options);
|
||||
});
|
||||
|
||||
var socket = new WebSocket("ws://192.168.120.15/websocket");
|
||||
var socket = new WebSocket("ws://localhost/websocket");
|
||||
|
||||
socket.onopen = function(event) {
|
||||
console.log("WebSocket连接已打开");
|
||||
|
|
@ -99,18 +99,19 @@
|
|||
var view = ''
|
||||
$.each(data, function (i, row) {
|
||||
view += template
|
||||
.replace('%IMAGE%', getImageUrl(row.radarIp))
|
||||
.replace('%IMAGE%', getImageUrl(row.status))
|
||||
.replace('%radarIp%', row.radarIp)
|
||||
.replace('%radarLocation%', row.radarLocation)
|
||||
})
|
||||
|
||||
return `<div class="row mx-0">${view}</div>`
|
||||
}
|
||||
function getImageUrl(radarIp) {
|
||||
if (radarIp === '192.168.0.7') {
|
||||
return "https://xjl559.oss-cn-shanghai.aliyuncs.com/2023/12/11/%E6%88%AA%E5%B1%8F2024-01-08%2013.57.36.png";
|
||||
} else if (radarIp === '192.168.0.8') {
|
||||
return "https://xjl559.oss-cn-shanghai.aliyuncs.com/2023/12/11/%E6%88%AA%E5%B1%8F2024-01-08%2013.57.36.png";
|
||||
function getImageUrl(status) {
|
||||
if (status === 1) {
|
||||
|
||||
return "http://localhost/img/radarGreen.png";
|
||||
} else if (status === 0) {
|
||||
return "http://localhost/img/radarRed.jpg";
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@
|
|||
<div class="row container">
|
||||
<div class="col-md-10">
|
||||
<div class="imageBox">
|
||||
<img id="avatar" th:src="(${#strings.isEmpty(user.avatar)}) ? @{/img/profile.jpg} : @{${user.avatar}}" th:onerror="'this.src=\'' + @{'/img/profile.jpg'} + '\''">
|
||||
<img id="avatar" th:src="(${#strings.isEmpty(user.avatar)}) ? @{/img/favicon.ico} : @{${user.avatar}}" th:onerror="'this.src=\'' + @{'/img/profile.jpg'} + '\''">
|
||||
</div>
|
||||
<div class="action">
|
||||
<div class="new-contentarea tc">
|
||||
|
|
|
|||
|
|
@ -12,34 +12,18 @@
|
|||
<div class="col-sm-3 pr5">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-title ibox-title-gray dashboard-header gray-bg">
|
||||
<h5>个人资料</h5>
|
||||
<h5>工厂资料</h5>
|
||||
</div>
|
||||
<div class="ibox-content">
|
||||
<div class="text-center">
|
||||
<p class="user-info-head" onclick="avatar()"><img class="img-circle img-lg" th:src="(${#strings.isEmpty(user.avatar)}) ? @{/img/profile.jpg} : @{${user.avatar}}" th:onerror="'this.src=\'' + @{'/img/profile.jpg'} + '\''"></p>
|
||||
<p><a href="javascript:avatar()">修改头像</a></p>
|
||||
<p class="user-info-head" onclick="avatar()"><img class="img-circle img-lg" th:src="(${#strings.isEmpty(user.avatar)}) ? @{/img/favicon.ico} : @{${user.avatar}}" th:onerror="'this.src=\'' + @{'/img/profile.jpg'} + '\''"></p>
|
||||
<p><a href="javascript:avatar()">修改图标</a></p>
|
||||
</div>
|
||||
<ul class="list-group list-group-striped">
|
||||
<li class="list-group-item"><i class="fa fa-user"></i>
|
||||
<b class="font-noraml">登录名称:</b>
|
||||
<b class="font-noraml">工厂名称:</b>
|
||||
<p class="pull-right">[[${user.loginName}]]</p>
|
||||
</li>
|
||||
<li class="list-group-item"><i class="fa fa-phone"></i>
|
||||
<b class="font-noraml">手机号码:</b>
|
||||
<p class="pull-right">[[${user.phonenumber}]]</p>
|
||||
</li>
|
||||
<li class="list-group-item" th:if="${user.dept?.deptName != null}"><i class="fa fa-group"></i>
|
||||
<b class="font-noraml">所属部门:</b>
|
||||
<p class="pull-right" style="overflow: hidden; white-space: nowrap; text-overflow: ellipsis;width:120px;">[[${user.dept?.deptName}]] / [[${#strings.defaultString(postGroup,'无岗位')}]]</p>
|
||||
</li>
|
||||
<li class="list-group-item"><i class="fa fa-envelope-o"></i>
|
||||
<b class="font-noraml">邮箱地址:</b>
|
||||
<p class="pull-right" th:title="${user.email}">[[${#strings.abbreviate(user.email, 16)}]]</p>
|
||||
</li>
|
||||
<li class="list-group-item"><i class="fa fa-calendar"></i>
|
||||
<b class="font-noraml">创建时间:</b>
|
||||
<p class="pull-right">[[${#dates.format(user.createTime, 'yyyy-MM-dd')}]]</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -54,7 +38,6 @@
|
|||
<div class="nav-tabs-custom">
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#user_info" data-toggle="tab" aria-expanded="true">基本资料</a></li>
|
||||
<li><a href="#modify_password" data-toggle="tab" aria-expanded="false">修改密码</a></li>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<!--用户信息-->
|
||||
|
|
@ -63,36 +46,36 @@
|
|||
<!--隐藏ID-->
|
||||
<input name="id" id="id" type="hidden">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">用户名称:</label>
|
||||
<label class="col-sm-2 control-label">工厂名称:</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" name="userName" th:field="*{userName}" placeholder="请输入用户名称">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">手机号码:</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" name="phonenumber" maxlength="11" th:field="*{phonenumber}" placeholder="请输入手机号码">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">邮箱:</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" maxlength="50" class="form-control" name="email" th:field="*{email}" placeholder="请输入邮箱">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">性别:</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="radio-box">
|
||||
<input type="radio" id="radio1" th:field="*{sex}" name="sex" value="0">
|
||||
<label for="radio1">男</label>
|
||||
</div>
|
||||
<div class="radio-box">
|
||||
<input type="radio" id="radio2" th:field="*{sex}" name="sex" value="1">
|
||||
<label for="radio2">女</label>
|
||||
</div>
|
||||
<input type="text" class="form-control" name="userName" th:field="*{userName}" placeholder="请输入工厂名称">
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="col-sm-2 control-label">手机号码:</label>-->
|
||||
<!-- <div class="col-sm-10">-->
|
||||
<!-- <input type="text" class="form-control" name="phonenumber" maxlength="11" th:field="*{phonenumber}" placeholder="请输入手机号码">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="col-sm-2 control-label">邮箱:</label>-->
|
||||
<!-- <div class="col-sm-10">-->
|
||||
<!-- <input type="text" maxlength="50" class="form-control" name="email" th:field="*{email}" placeholder="请输入邮箱">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="col-sm-2 control-label">性别:</label>-->
|
||||
<!-- <div class="col-sm-10">-->
|
||||
<!-- <div class="radio-box">-->
|
||||
<!-- <input type="radio" id="radio1" th:field="*{sex}" name="sex" value="0">-->
|
||||
<!-- <label for="radio1">男</label>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="radio-box">-->
|
||||
<!-- <input type="radio" id="radio2" th:field="*{sex}" name="sex" value="1">-->
|
||||
<!-- <label for="radio2">女</label>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<button type="button" class="btn btn-sm btn-primary" onclick="submitUserInfo()"><i class="fa fa-check"></i>保 存</button>
|
||||
|
|
@ -102,45 +85,7 @@
|
|||
</form>
|
||||
</div>
|
||||
|
||||
<!--修改密码-->
|
||||
<div class="tab-pane" id="modify_password">
|
||||
<form class="form-horizontal" id="form-user-resetPwd">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">旧密码:</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="password" class="form-control" name="oldPassword" placeholder="请输入旧密码">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">新密码:</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="password" class="form-control" name="newPassword" id="newPassword" placeholder="请输入新密码">
|
||||
<th:block th:with="chrtype=${@config.getKey('sys.account.chrtype')}">
|
||||
<th:block th:if="${chrtype != '0'}">
|
||||
<span class="help-block m-b-none">
|
||||
<th:block th:if="${chrtype == '1'}"><i class="fa fa-info-circle" style="color: red;"></i> 密码只能为0-9数字 </th:block>
|
||||
<th:block th:if="${chrtype == '2'}"><i class="fa fa-info-circle" style="color: red;"></i> 密码只能为a-z和A-Z字母</th:block>
|
||||
<th:block th:if="${chrtype == '3'}"><i class="fa fa-info-circle" style="color: red;"></i> 密码必须包含(字母,数字)</th:block>
|
||||
<th:block th:if="${chrtype == '4'}"><i class="fa fa-info-circle" style="color: red;"></i> 密码必须包含(字母,数字,特殊字符!@#$%^&*()-=_+)</th:block>
|
||||
</span>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">确认密码:</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="password" class="form-control" name="confirmPassword" placeholder="请确认密码">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<button type="button" class="btn btn-sm btn-primary" onclick="submitChangPassword()"><i class="fa fa-check"></i>保 存</button>
|
||||
<button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -161,7 +106,7 @@
|
|||
//不固定
|
||||
maxmin: true,
|
||||
shade: 0.3,
|
||||
title: "修改头像",
|
||||
title: "修改图标",
|
||||
content: url,
|
||||
btn: ['确定', '关闭'],
|
||||
// 弹层外区域关闭
|
||||
|
|
|
|||
|
|
@ -0,0 +1,298 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
|
||||
<head>
|
||||
<th:block th:include="include :: header('用户个人信息')" />
|
||||
<style type="text/css">.user-info-head{position:relative;display:inline-block;}.user-info-head:hover:after{content:'\f030';position:absolute;left:0;right:0;top:0;bottom:0;color:#eee;background:rgba(0,0,0,0.5);font-family:FontAwesome;font-size:24px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;cursor:pointer;line-height:110px;border-radius:50%;}</style>
|
||||
</head>
|
||||
|
||||
<body class="gray-bg" style="font: 14px Helvetica Neue, Helvetica, PingFang SC, 微软雅黑, Tahoma, Arial, sans-serif !important;">
|
||||
<input id="userId" name="userId" type="hidden" th:value="${user.userId}" />
|
||||
<section class="section-content">
|
||||
<div class="row">
|
||||
<div class="col-sm-3 pr5">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-title ibox-title-gray dashboard-header gray-bg">
|
||||
<h5>个人资料</h5>
|
||||
</div>
|
||||
<div class="ibox-content">
|
||||
<div class="text-center">
|
||||
<p class="user-info-head" onclick="avatar()"><img class="img-circle img-lg" th:src="(${#strings.isEmpty(user.avatar)}) ? @{/img/profile.jpg} : @{${user.avatar}}" th:onerror="'this.src=\'' + @{'/img/profile.jpg'} + '\''"></p>
|
||||
<p><a href="javascript:avatar()">修改头像</a></p>
|
||||
</div>
|
||||
<ul class="list-group list-group-striped">
|
||||
<li class="list-group-item"><i class="fa fa-user"></i>
|
||||
<b class="font-noraml">登录名称:</b>
|
||||
<p class="pull-right">[[${user.loginName}]]</p>
|
||||
</li>
|
||||
<li class="list-group-item"><i class="fa fa-phone"></i>
|
||||
<b class="font-noraml">手机号码:</b>
|
||||
<p class="pull-right">[[${user.phonenumber}]]</p>
|
||||
</li>
|
||||
<li class="list-group-item" th:if="${user.dept?.deptName != null}"><i class="fa fa-group"></i>
|
||||
<b class="font-noraml">所属部门:</b>
|
||||
<p class="pull-right" style="overflow: hidden; white-space: nowrap; text-overflow: ellipsis;width:120px;">[[${user.dept?.deptName}]] / [[${#strings.defaultString(postGroup,'无岗位')}]]</p>
|
||||
</li>
|
||||
<li class="list-group-item"><i class="fa fa-envelope-o"></i>
|
||||
<b class="font-noraml">邮箱地址:</b>
|
||||
<p class="pull-right" th:title="${user.email}">[[${#strings.abbreviate(user.email, 16)}]]</p>
|
||||
</li>
|
||||
<li class="list-group-item"><i class="fa fa-calendar"></i>
|
||||
<b class="font-noraml">创建时间:</b>
|
||||
<p class="pull-right">[[${#dates.format(user.createTime, 'yyyy-MM-dd')}]]</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-9 about">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-title ibox-title-gray dashboard-header">
|
||||
<h5>基本资料</h5>
|
||||
</div>
|
||||
<div class="ibox-content">
|
||||
<div class="nav-tabs-custom">
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active"><a href="#user_info" data-toggle="tab" aria-expanded="true">基本资料</a></li>
|
||||
<li><a href="#modify_password" data-toggle="tab" aria-expanded="false">修改密码</a></li>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<!--用户信息-->
|
||||
<div class="tab-pane active" id="user_info" th:object="${user}">
|
||||
<form class="form-horizontal" id="form-user-edit">
|
||||
<!--隐藏ID-->
|
||||
<input name="id" id="id" type="hidden">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">用户名称:</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" name="userName" th:field="*{userName}" placeholder="请输入用户名称">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">手机号码:</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" name="phonenumber" maxlength="11" th:field="*{phonenumber}" placeholder="请输入手机号码">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">邮箱:</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" maxlength="50" class="form-control" name="email" th:field="*{email}" placeholder="请输入邮箱">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">性别:</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="radio-box">
|
||||
<input type="radio" id="radio1" th:field="*{sex}" name="sex" value="0">
|
||||
<label for="radio1">男</label>
|
||||
</div>
|
||||
<div class="radio-box">
|
||||
<input type="radio" id="radio2" th:field="*{sex}" name="sex" value="1">
|
||||
<label for="radio2">女</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<button type="button" class="btn btn-sm btn-primary" onclick="submitUserInfo()"><i class="fa fa-check"></i>保 存</button>
|
||||
<button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<!--修改密码-->
|
||||
<div class="tab-pane" id="modify_password">
|
||||
<form class="form-horizontal" id="form-user-resetPwd">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">旧密码:</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="password" class="form-control" name="oldPassword" placeholder="请输入旧密码">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">新密码:</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="password" class="form-control" name="newPassword" id="newPassword" placeholder="请输入新密码">
|
||||
<th:block th:with="chrtype=${@config.getKey('sys.account.chrtype')}">
|
||||
<th:block th:if="${chrtype != '0'}">
|
||||
<span class="help-block m-b-none">
|
||||
<th:block th:if="${chrtype == '1'}"><i class="fa fa-info-circle" style="color: red;"></i> 密码只能为0-9数字 </th:block>
|
||||
<th:block th:if="${chrtype == '2'}"><i class="fa fa-info-circle" style="color: red;"></i> 密码只能为a-z和A-Z字母</th:block>
|
||||
<th:block th:if="${chrtype == '3'}"><i class="fa fa-info-circle" style="color: red;"></i> 密码必须包含(字母,数字)</th:block>
|
||||
<th:block th:if="${chrtype == '4'}"><i class="fa fa-info-circle" style="color: red;"></i> 密码必须包含(字母,数字,特殊字符!@#$%^&*()-=_+)</th:block>
|
||||
</span>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">确认密码:</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="password" class="form-control" name="confirmPassword" placeholder="请确认密码">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<button type="button" class="btn btn-sm btn-primary" onclick="submitChangPassword()"><i class="fa fa-check"></i>保 存</button>
|
||||
<button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<th:block th:include="include :: footer" />
|
||||
<script>
|
||||
/*用户管理-头像*/
|
||||
function avatar() {
|
||||
var url = ctx + 'system/user/profileEdit/avatar';
|
||||
top.layer.open({
|
||||
type: 2,
|
||||
area: [$(window).width() + 'px', $(window).height() + 'px'],
|
||||
fix: false,
|
||||
//不固定
|
||||
maxmin: true,
|
||||
shade: 0.3,
|
||||
title: "修改头像",
|
||||
content: url,
|
||||
btn: ['确定', '关闭'],
|
||||
// 弹层外区域关闭
|
||||
shadeClose: true,
|
||||
yes: function(index, layero) {
|
||||
var iframeWin = layero.find('iframe')[0];
|
||||
iframeWin.contentWindow.submitHandler(index, layero);
|
||||
},
|
||||
cancel: function(index) {
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/*用户信息-修改*/
|
||||
$("#form-user-edit").validate({
|
||||
onkeyup: false,
|
||||
rules:{
|
||||
userName:{
|
||||
required:true,
|
||||
},
|
||||
email:{
|
||||
required:true,
|
||||
email:true,
|
||||
remote: {
|
||||
url: ctx + "system/user/checkEmailUnique",
|
||||
type: "post",
|
||||
dataType: "json",
|
||||
data: {
|
||||
"userId": function() {
|
||||
return $("#userId").val();
|
||||
},
|
||||
"email": function() {
|
||||
return $.common.trim($("#email").val());
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
phonenumber:{
|
||||
required:true,
|
||||
isPhone:true,
|
||||
remote: {
|
||||
url: ctx + "system/user/checkPhoneUnique",
|
||||
type: "post",
|
||||
dataType: "json",
|
||||
data: {
|
||||
"userId": function() {
|
||||
return $("#userId").val();
|
||||
},
|
||||
"phonenumber": function() {
|
||||
return $.common.trim($("#phonenumber").val());
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
messages: {
|
||||
"userName": {
|
||||
required: "请输入用户名称",
|
||||
},
|
||||
"email": {
|
||||
required: "请输入邮箱",
|
||||
remote: "Email已经存在"
|
||||
},
|
||||
"phonenumber":{
|
||||
required: "请输入手机号码",
|
||||
remote: "手机号码已经存在"
|
||||
}
|
||||
},
|
||||
focusCleanup: true
|
||||
});
|
||||
|
||||
function submitUserInfo() {
|
||||
if ($.validate.form()) {
|
||||
$.operate.saveModal(ctx + "system/user/profileEdit/update", $('#form-user-edit').serialize());
|
||||
}
|
||||
}
|
||||
|
||||
/*用户管理-修改密码*/
|
||||
$("#form-user-resetPwd").validate({
|
||||
onkeyup: false,
|
||||
rules:{
|
||||
oldPassword:{
|
||||
required:true,
|
||||
remote: {
|
||||
url: ctx + "system/user/profileEdit/checkPassword",
|
||||
type: "get",
|
||||
dataType: "json",
|
||||
data: {
|
||||
password: function() {
|
||||
return $("input[name='oldPassword']").val();
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
newPassword: {
|
||||
required: true,
|
||||
minlength: 6,
|
||||
maxlength: 20
|
||||
},
|
||||
confirmPassword: {
|
||||
required: true,
|
||||
equalTo: "#newPassword"
|
||||
}
|
||||
},
|
||||
messages: {
|
||||
oldPassword: {
|
||||
required: "请输入原密码",
|
||||
remote: "原密码错误"
|
||||
},
|
||||
newPassword: {
|
||||
required: "请输入新密码",
|
||||
minlength: "密码不能小于6个字符",
|
||||
maxlength: "密码不能大于20个字符"
|
||||
},
|
||||
confirmPassword: {
|
||||
required: "请再次输入新密码",
|
||||
equalTo: "两次密码输入不一致"
|
||||
}
|
||||
|
||||
},
|
||||
focusCleanup: true
|
||||
});
|
||||
|
||||
function submitChangPassword () {
|
||||
var chrtype = [[${#strings.defaultString(@config.getKey('sys.account.chrtype'), 0)}]];
|
||||
var password = $("#newPassword").val();
|
||||
if ($.validate.form("form-user-resetPwd") && checkpwd(chrtype, password)) {
|
||||
$.operate.saveModal(ctx + "system/user/profileEdit/resetPwd", $('#form-user-resetPwd').serialize());
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
package com.ruoyi.common.core.domain.entity;
|
||||
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.annotation.Excel.ColumnType;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
|
||||
/**
|
||||
* 高温标识器配置对象 sys_identifier
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class IdentifierExcel extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 用户ID */
|
||||
@Excel(name = "高温标识器序号", cellType = ColumnType.NUMERIC, prompt = "序号")
|
||||
private Long id;
|
||||
|
||||
@Excel(name = "高温标识器ID1")
|
||||
private String identifierId;
|
||||
|
||||
@Excel(name = "高温标识器ID2")
|
||||
private String identifierTwo;
|
||||
|
||||
@Excel(name = "铁包号")
|
||||
private String ladleNumber;
|
||||
|
||||
/** 删除标志(0代表存在 2代表删除) */
|
||||
private String delFlag;
|
||||
|
||||
public IdentifierExcel() {
|
||||
}
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getIdentifierId() {
|
||||
return identifierId;
|
||||
}
|
||||
|
||||
public void setIdentifierId(String identifierId) {
|
||||
this.identifierId = identifierId;
|
||||
}
|
||||
|
||||
public String getIdentifierTwo() {
|
||||
return identifierTwo;
|
||||
}
|
||||
|
||||
public void setIdentifierTwo(String identifierTwo) {
|
||||
this.identifierTwo = identifierTwo;
|
||||
}
|
||||
|
||||
|
||||
public String getLadleNumber() {
|
||||
return ladleNumber;
|
||||
}
|
||||
|
||||
public void setLadleNumber(String ladleNumber) {
|
||||
this.ladleNumber = ladleNumber;
|
||||
}
|
||||
|
||||
public String getDelFlag() {
|
||||
return delFlag;
|
||||
}
|
||||
|
||||
public void setDelFlag(String delFlag) {
|
||||
this.delFlag = delFlag;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("id", getId())
|
||||
.append("identifierId", getIdentifierId())
|
||||
.append("identifierTwo", getIdentifierTwo())
|
||||
.append("ladleNumber", getLadleNumber())
|
||||
.append("delFlag", getDelFlag())
|
||||
.append("createBy", getCreateBy())
|
||||
.append("createTime", getCreateTime())
|
||||
.append("updateBy", getUpdateBy())
|
||||
.append("updateTime", getUpdateTime())
|
||||
.append("remark", getRemark())
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,117 @@
|
|||
package com.ruoyi.common.core.domain.entity;
|
||||
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.annotation.Excel.ColumnType;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
|
||||
/**
|
||||
* 高温标识器配置对象 sys_identifier
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class NormalExcel extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 用户ID */
|
||||
@Excel(name = "常温标识器序号", cellType = ColumnType.NUMERIC, prompt = "序号")
|
||||
private Long id;
|
||||
|
||||
@Excel(name = "常温标识器ID1")
|
||||
private String identifierId;
|
||||
|
||||
@Excel(name = "常温标识器ID2")
|
||||
private String identifierTwo;
|
||||
|
||||
@Excel(name = "常温标识器ID3")
|
||||
private String identifierThree;
|
||||
|
||||
@Excel(name = "常温标识器ID4")
|
||||
private String identifierFour;
|
||||
|
||||
@Excel(name = "铁包号")
|
||||
private String ladleNumber;
|
||||
|
||||
/** 删除标志(0代表存在 2代表删除) */
|
||||
private String delFlag;
|
||||
|
||||
public NormalExcel() {
|
||||
}
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getIdentifierId() {
|
||||
return identifierId;
|
||||
}
|
||||
|
||||
public void setIdentifierId(String identifierId) {
|
||||
this.identifierId = identifierId;
|
||||
}
|
||||
|
||||
public String getIdentifierTwo() {
|
||||
return identifierTwo;
|
||||
}
|
||||
|
||||
public void setIdentifierTwo(String identifierTwo) {
|
||||
this.identifierTwo = identifierTwo;
|
||||
}
|
||||
|
||||
public String getIdentifierThree() {
|
||||
return identifierThree;
|
||||
}
|
||||
|
||||
public void setIdentifierThree(String identifierThree) {
|
||||
this.identifierThree = identifierThree;
|
||||
}
|
||||
|
||||
public String getIdentifierFour() {
|
||||
return identifierFour;
|
||||
}
|
||||
|
||||
public void setIdentifierFour(String identifierFour) {
|
||||
this.identifierFour = identifierFour;
|
||||
}
|
||||
|
||||
|
||||
public String getLadleNumber() {
|
||||
return ladleNumber;
|
||||
}
|
||||
|
||||
public void setLadleNumber(String ladleNumber) {
|
||||
this.ladleNumber = ladleNumber;
|
||||
}
|
||||
|
||||
public String getDelFlag() {
|
||||
return delFlag;
|
||||
}
|
||||
|
||||
public void setDelFlag(String delFlag) {
|
||||
this.delFlag = delFlag;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("id", getId())
|
||||
.append("identifierId", getIdentifierId())
|
||||
.append("identifierTwo", getIdentifierTwo())
|
||||
.append("ladleNumber", getLadleNumber())
|
||||
.append("identifierThree", getIdentifierThree())
|
||||
.append("identifierFour",getIdentifierFour())
|
||||
.append("delFlag", getDelFlag())
|
||||
.append("createBy", getCreateBy())
|
||||
.append("createTime", getCreateTime())
|
||||
.append("updateBy", getUpdateBy())
|
||||
.append("updateTime", getUpdateTime())
|
||||
.append("remark", getRemark())
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,142 @@
|
|||
package com.ruoyi.common.core.domain.entity;
|
||||
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.annotation.Excel.ColumnType;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
|
||||
/**
|
||||
* 雷达配置对象 sys_radar
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
public class RadarExcel extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 用户ID */
|
||||
@Excel(name = "雷达序号", cellType = ColumnType.NUMERIC, prompt = "雷达编号")
|
||||
private Long id;
|
||||
|
||||
@Excel(name = "雷达IP")
|
||||
private String radarIp;
|
||||
|
||||
@Excel(name = "雷达位置/工位")
|
||||
private String radarLocation;
|
||||
|
||||
@Excel(name = "工位代号")
|
||||
private Integer stationCode;
|
||||
|
||||
@Excel(name = "工序")
|
||||
private Integer sort;
|
||||
|
||||
private Integer status;
|
||||
|
||||
@Excel(name = "雷达ID")
|
||||
private Integer radarId;
|
||||
|
||||
@Excel(name = "雷达天线号")
|
||||
private String radarNum;
|
||||
|
||||
/** 删除标志(0代表存在 2代表删除) */
|
||||
private String delFlag;
|
||||
|
||||
public RadarExcel() {
|
||||
}
|
||||
|
||||
public String getDelFlag() {
|
||||
return delFlag;
|
||||
}
|
||||
|
||||
public void setDelFlag(String delFlag) {
|
||||
this.delFlag = delFlag;
|
||||
}
|
||||
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getRadarIp() {
|
||||
return radarIp;
|
||||
}
|
||||
|
||||
public void setRadarIp(String radarIp) {
|
||||
this.radarIp = radarIp;
|
||||
}
|
||||
|
||||
public String getRadarLocation() {
|
||||
return radarLocation;
|
||||
}
|
||||
|
||||
public void setRadarLocation(String radarLocation) {
|
||||
this.radarLocation = radarLocation;
|
||||
}
|
||||
|
||||
public Integer getStationCode() {
|
||||
return stationCode;
|
||||
}
|
||||
|
||||
public void setStationCode(Integer stationCode) {
|
||||
this.stationCode = stationCode;
|
||||
}
|
||||
|
||||
public Integer getSort() {
|
||||
return sort;
|
||||
}
|
||||
|
||||
public void setSort(Integer sort) {
|
||||
this.sort = sort;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public Integer getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(Integer status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public Integer getRadarId() {
|
||||
return radarId;
|
||||
}
|
||||
|
||||
public void setRadarId(Integer radarId) {
|
||||
this.radarId = radarId;
|
||||
}
|
||||
|
||||
public String getRadarNum() {
|
||||
return radarNum;
|
||||
}
|
||||
|
||||
public void setRadarNum(String radarNum) {
|
||||
this.radarNum = radarNum;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("id", getId())
|
||||
.append("radarIp", getRadarIp())
|
||||
.append("radarLocation", getRadarLocation())
|
||||
.append("stationCode", getStationCode())
|
||||
.append("sort", getSort())
|
||||
.append("status", getStatus())
|
||||
.append("radarId", getRadarId())
|
||||
.append("radarNum", getRadarNum())
|
||||
.append("delFlag", getDelFlag())
|
||||
.append("createBy", getCreateBy())
|
||||
.append("createTime", getCreateTime())
|
||||
.append("updateBy", getUpdateBy())
|
||||
.append("updateTime", getUpdateTime())
|
||||
.append("remark", getRemark())
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
|
|
@ -44,6 +44,10 @@ public class SysRadar extends BaseEntity
|
|||
|
||||
private Integer status;
|
||||
|
||||
private Integer radarId;
|
||||
|
||||
private String radarNum;
|
||||
|
||||
/** 删除标志(0代表存在 2代表删除) */
|
||||
private String delFlag;
|
||||
|
||||
|
|
@ -140,6 +144,22 @@ public class SysRadar extends BaseEntity
|
|||
this.status = status;
|
||||
}
|
||||
|
||||
public Integer getRadarId() {
|
||||
return radarId;
|
||||
}
|
||||
|
||||
public void setRadarId(Integer radarId) {
|
||||
this.radarId = radarId;
|
||||
}
|
||||
|
||||
public String getRadarNum() {
|
||||
return radarNum;
|
||||
}
|
||||
|
||||
public void setRadarNum(String radarNum) {
|
||||
this.radarNum = radarNum;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||
|
|
@ -153,6 +173,8 @@ public class SysRadar extends BaseEntity
|
|||
.append("alarmValue3", getAlarmValue3())
|
||||
.append("alarmValue4", getAlarmValue4())
|
||||
.append("status", getStatus())
|
||||
.append("radarId", getRadarId())
|
||||
.append("radarNum", getRadarNum())
|
||||
.append("delFlag", getDelFlag())
|
||||
.append("createBy", getCreateBy())
|
||||
.append("createTime", getCreateTime())
|
||||
|
|
|
|||
|
|
@ -34,4 +34,6 @@ public interface SysIdentifierMapper
|
|||
List<SysIdentifier> selectAllIdentifierList();
|
||||
|
||||
SysIdentifier selectIdentifierByTag(String tag);
|
||||
|
||||
int deleteRadarByIds(String ids);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,4 +41,5 @@ public interface SysRadarMapper
|
|||
public int updateRadarValue(SysRadar radar);
|
||||
public int updateStatus(SysRadar radar);
|
||||
|
||||
int deleteRadarByIds(String ids);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
package com.ruoyi.system.service;
|
||||
|
||||
import com.ruoyi.common.core.domain.entity.SysIdentifier;
|
||||
import com.ruoyi.common.core.domain.entity.SysRadar;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
import com.ruoyi.common.core.domain.entity.*;
|
||||
import com.ruoyi.system.domain.SysUserRole;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -31,4 +29,10 @@ public interface ISysIdentifierService
|
|||
int updateNormalIdentifier(SysIdentifier identifier);
|
||||
|
||||
SysIdentifier selectIdentifierByTag(String tag);
|
||||
|
||||
int deleteRadarByIds(String ids);
|
||||
|
||||
String importNormalData(List<NormalExcel> normalList, boolean isUpdateSupport);
|
||||
|
||||
String importData(List<IdentifierExcel> identifierList, boolean isUpdateSupport);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.ruoyi.system.service;
|
||||
|
||||
import com.ruoyi.common.core.domain.entity.RadarExcel;
|
||||
import com.ruoyi.common.core.domain.entity.SysRadar;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
import com.ruoyi.system.domain.SysUserRole;
|
||||
|
|
@ -32,4 +33,8 @@ public interface ISysRadarService
|
|||
public int updateRadarValue(SysRadar radar);
|
||||
|
||||
int changeStatus(SysRadar radar);
|
||||
|
||||
int deleteRadarByIds(String ids);
|
||||
|
||||
String importData(List<RadarExcel> radarList, boolean isUpdateSupport);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,14 +1,12 @@
|
|||
package com.ruoyi.system.service.impl;
|
||||
|
||||
import com.ruoyi.common.constant.UserConstants;
|
||||
import com.ruoyi.common.core.domain.entity.SysIdentifier;
|
||||
import com.ruoyi.common.core.domain.entity.SysRadar;
|
||||
import com.ruoyi.common.core.domain.entity.SysRole;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
import com.ruoyi.common.core.domain.entity.*;
|
||||
import com.ruoyi.common.core.text.Convert;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.utils.ShiroUtils;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.utils.bean.BeanUtils;
|
||||
import com.ruoyi.common.utils.bean.BeanValidators;
|
||||
import com.ruoyi.common.utils.security.Md5Utils;
|
||||
import com.ruoyi.system.domain.SysPost;
|
||||
|
|
@ -96,6 +94,138 @@ public class SysIdentifierServiceImpl implements ISysIdentifierService
|
|||
return identifierMapper.selectIdentifierByTag(tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteRadarByIds(String ids) {
|
||||
|
||||
return identifierMapper.deleteRadarByIds(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String importNormalData(List<NormalExcel> normalList, boolean isUpdateSupport) {
|
||||
if (StringUtils.isNull(normalList) || normalList.size() == 0)
|
||||
{
|
||||
throw new ServiceException("导入数据不能为空!");
|
||||
}
|
||||
int successNum = 0;
|
||||
int failureNum = 0;
|
||||
StringBuilder successMsg = new StringBuilder();
|
||||
StringBuilder failureMsg = new StringBuilder();
|
||||
List<SysIdentifier> sysIdentifiers = normalList.stream().map(normalExcel -> {
|
||||
SysIdentifier sysIdentifier = new SysIdentifier();
|
||||
BeanUtils.copyProperties(normalExcel, sysIdentifier);
|
||||
sysIdentifier.setId(normalExcel.getId());
|
||||
return sysIdentifier;
|
||||
}).collect(Collectors.toList());
|
||||
for (SysIdentifier sysIdentifier : sysIdentifiers)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 验证是否存在
|
||||
SysIdentifier u = identifierMapper.selectNormalIdentifierById(sysIdentifier.getId());
|
||||
if (StringUtils.isNull(u))
|
||||
{
|
||||
BeanValidators.validateWithException(validator, sysIdentifier);
|
||||
identifierMapper.insertNormalIdentifier(sysIdentifier);
|
||||
successNum++;
|
||||
successMsg.append("<br/>" + successNum + "、高温标识器 " + sysIdentifier.getId() + " 导入成功");
|
||||
}
|
||||
else if (isUpdateSupport)
|
||||
{
|
||||
BeanValidators.validateWithException(validator, sysIdentifier);
|
||||
sysIdentifier.setId(u.getId());
|
||||
identifierMapper.updateNormalIdentifier(sysIdentifier);
|
||||
successNum++;
|
||||
successMsg.append("<br/>" + successNum + "、高温标识器 " + sysIdentifier.getId() + " 更新成功");
|
||||
}
|
||||
else
|
||||
{
|
||||
failureNum++;
|
||||
failureMsg.append("<br/>" + failureNum + "、高温标识器 " + sysIdentifier.getId() + " 已存在");
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
failureNum++;
|
||||
String msg = "<br/>" + failureNum + "、高温标识器 " + sysIdentifier.getId() + " 导入失败:";
|
||||
failureMsg.append(msg + e.getMessage());
|
||||
log.error(msg, e);
|
||||
}
|
||||
}
|
||||
if (failureNum > 0)
|
||||
{
|
||||
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
|
||||
throw new ServiceException(failureMsg.toString());
|
||||
}
|
||||
else
|
||||
{
|
||||
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
|
||||
}
|
||||
return successMsg.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String importData(List<IdentifierExcel> identifierList, boolean isUpdateSupport) {
|
||||
if (StringUtils.isNull(identifierList) || identifierList.size() == 0)
|
||||
{
|
||||
throw new ServiceException("导入数据不能为空!");
|
||||
}
|
||||
int successNum = 0;
|
||||
int failureNum = 0;
|
||||
StringBuilder successMsg = new StringBuilder();
|
||||
StringBuilder failureMsg = new StringBuilder();
|
||||
List<SysIdentifier> sysIdentifiers = identifierList.stream().map(identifierExcel -> {
|
||||
SysIdentifier sysIdentifier = new SysIdentifier();
|
||||
BeanUtils.copyProperties(identifierExcel, sysIdentifier);
|
||||
sysIdentifier.setId(identifierExcel.getId());
|
||||
return sysIdentifier;
|
||||
}).collect(Collectors.toList());
|
||||
for (SysIdentifier sysIdentifier : sysIdentifiers)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 验证是否存在
|
||||
SysIdentifier u = identifierMapper.selectIdentifierById(sysIdentifier.getId());
|
||||
if (StringUtils.isNull(u))
|
||||
{
|
||||
BeanValidators.validateWithException(validator, sysIdentifier);
|
||||
identifierMapper.insertIdentifier(sysIdentifier);
|
||||
successNum++;
|
||||
successMsg.append("<br/>" + successNum + "、高温标识器 " + sysIdentifier.getId() + " 导入成功");
|
||||
}
|
||||
else if (isUpdateSupport)
|
||||
{
|
||||
BeanValidators.validateWithException(validator, sysIdentifier);
|
||||
sysIdentifier.setId(u.getId());
|
||||
identifierMapper.updateIdentifier(sysIdentifier);
|
||||
successNum++;
|
||||
successMsg.append("<br/>" + successNum + "、高温标识器 " + sysIdentifier.getId() + " 更新成功");
|
||||
}
|
||||
else
|
||||
{
|
||||
failureNum++;
|
||||
failureMsg.append("<br/>" + failureNum + "、高温标识器 " + sysIdentifier.getId() + " 已存在");
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
failureNum++;
|
||||
String msg = "<br/>" + failureNum + "、高温标识器 " + sysIdentifier.getId() + " 导入失败:";
|
||||
failureMsg.append(msg + e.getMessage());
|
||||
log.error(msg, e);
|
||||
}
|
||||
}
|
||||
if (failureNum > 0)
|
||||
{
|
||||
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
|
||||
throw new ServiceException(failureMsg.toString());
|
||||
}
|
||||
else
|
||||
{
|
||||
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
|
||||
}
|
||||
return successMsg.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public SysIdentifier selectIdentifierById(Long id) {
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.ruoyi.system.service.impl;
|
|||
|
||||
import com.ruoyi.common.annotation.DataScope;
|
||||
import com.ruoyi.common.constant.UserConstants;
|
||||
import com.ruoyi.common.core.domain.entity.RadarExcel;
|
||||
import com.ruoyi.common.core.domain.entity.SysRadar;
|
||||
import com.ruoyi.common.core.domain.entity.SysRole;
|
||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||
|
|
@ -9,6 +10,7 @@ import com.ruoyi.common.core.text.Convert;
|
|||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.utils.ShiroUtils;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.utils.bean.BeanUtils;
|
||||
import com.ruoyi.common.utils.bean.BeanValidators;
|
||||
import com.ruoyi.common.utils.security.Md5Utils;
|
||||
import com.ruoyi.common.utils.spring.SpringUtils;
|
||||
|
|
@ -101,6 +103,77 @@ public class SysRadarServiceImpl implements ISysRadarService
|
|||
return radarMapper.updateStatus(radar);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteRadarByIds(String ids) {
|
||||
|
||||
return radarMapper.deleteRadarByIds(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String importData(List<RadarExcel> radarList, boolean isUpdateSupport) {
|
||||
|
||||
if (StringUtils.isNull(radarList) || radarList.size() == 0)
|
||||
{
|
||||
throw new ServiceException("导入数据不能为空!");
|
||||
}
|
||||
int successNum = 0;
|
||||
int failureNum = 0;
|
||||
StringBuilder successMsg = new StringBuilder();
|
||||
StringBuilder failureMsg = new StringBuilder();
|
||||
String password = configService.selectConfigByKey("sys.user.initPassword");
|
||||
List<SysRadar> sysRadarList = radarList.stream().map(radarExcel -> {
|
||||
SysRadar sysRadar = new SysRadar();
|
||||
BeanUtils.copyProperties(radarExcel, sysRadar);
|
||||
return sysRadar;
|
||||
}).collect(Collectors.toList());
|
||||
for (SysRadar radar : sysRadarList)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 验证是否存在这个用户
|
||||
SysRadar u = radarMapper.selectRadarById(radar.getId());
|
||||
if (StringUtils.isNull(u))
|
||||
{
|
||||
BeanValidators.validateWithException(validator, radar);
|
||||
radarMapper.insertRadar(radar);
|
||||
successNum++;
|
||||
successMsg.append("<br/>" + successNum + "、雷达 " + radar.getRadarIp() + " 导入成功");
|
||||
}
|
||||
else if (isUpdateSupport)
|
||||
{
|
||||
BeanValidators.validateWithException(validator, radar);
|
||||
radar.setId(u.getId());
|
||||
radarMapper.updateRadar(radar);
|
||||
successNum++;
|
||||
successMsg.append("<br/>" + successNum + "、雷达 " + radar.getRadarIp() + " 更新成功");
|
||||
}
|
||||
else
|
||||
{
|
||||
failureNum++;
|
||||
failureMsg.append("<br/>" + failureNum + "、雷达 " + radar.getRadarIp() + " 已存在");
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
failureNum++;
|
||||
String msg = "<br/>" + failureNum + "、雷达 " + radar.getRadarIp() + " 导入失败:";
|
||||
failureMsg.append(msg + e.getMessage());
|
||||
log.error(msg, e);
|
||||
}
|
||||
}
|
||||
if (failureNum > 0)
|
||||
{
|
||||
failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
|
||||
throw new ServiceException(failureMsg.toString());
|
||||
}
|
||||
else
|
||||
{
|
||||
successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
|
||||
}
|
||||
return successMsg.toString();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -110,40 +110,5 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
</if>
|
||||
</select>
|
||||
|
||||
<!-- <insert id="insertPrimaryRadarData">-->
|
||||
|
||||
<!-- insert into sys_normalIdentifier(-->
|
||||
<!-- <if test="id != null and id != 0">id,</if>-->
|
||||
<!-- <if test="value1 != null and value1 != ''">value1,</if>-->
|
||||
<!-- <if test="value2 != null and value2 != ''">value2,</if>-->
|
||||
<!-- <if test="value3 != null and value3 != ''">value3,</if>-->
|
||||
<!-- <if test="value4 != null and value4 != ''">value4,</if>-->
|
||||
<!-- <if test="value5 != null and value5 != ''">value5,</if>-->
|
||||
<!-- <if test="baseLine != null and baseLine != ''">base_line,</if>-->
|
||||
<!-- <if test="queryFre != null and queryFre != ''">query_fre,</if>-->
|
||||
<!-- <if test="number != null and number != ''">number,</if>-->
|
||||
<!-- <if test="radarLocation != null and radarLocation != ''">radar_location,</if>-->
|
||||
<!-- <if test="ladleNumber != null and ladleNumber != ''">ladle_number,</if>-->
|
||||
<!-- <if test="createBy != null and createBy != ''">create_by,</if>-->
|
||||
<!-- <if test="remark != null and remark != ''">remark,</if>-->
|
||||
<!-- create_time-->
|
||||
<!-- )values(-->
|
||||
<!-- <if test="id != null and id != 0">#{id},</if>-->
|
||||
<!-- <if test="value1 != null and value1 != ''">#{value1},</if>-->
|
||||
<!-- <if test="value2 != null and value2 != ''">#{value2},</if>-->
|
||||
<!-- <if test="value3 != null and value3 != ''">#{value3},</if>-->
|
||||
<!-- <if test="value4 != null and value4 != ''">#{value4},</if>-->
|
||||
<!-- <if test="value5 != null and value5 != ''">#{value5},</if>-->
|
||||
<!-- <if test="baseLine != null and baseLine != ''">#{baseLine},</if>-->
|
||||
<!-- <if test="queryFre != null and queryFre != ''">#{queryFre},</if>-->
|
||||
<!-- <if test="number != null and number != ''">#{number},</if>-->
|
||||
<!-- <if test="radarLocation != null and radarLocation != ''">#{radarLocation},</if>-->
|
||||
<!-- <if test="ladleNumber != null and ladleNumber != ''">#{ladleNumber},</if>-->
|
||||
<!-- <if test="createBy!= null and createBy!= ''">#{createBy},</if>-->
|
||||
<!-- <if test="remark != null and remark != ''">#{remark},</if>-->
|
||||
<!-- sysdate()-->
|
||||
<!-- )-->
|
||||
<!-- </insert>-->
|
||||
|
||||
|
||||
</mapper>
|
||||
|
|
@ -141,4 +141,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
from sys_identifier i where i.identifier_id = #{tag} or identifier_two = #{tag} or identifier_three = #{tag} or identifier_four = #{tag}
|
||||
|
||||
</select>
|
||||
|
||||
<delete id="deleteRadarByIds">
|
||||
delete from sys_identifier where id in (#{ids})
|
||||
</delete>
|
||||
</mapper>
|
||||
|
|
@ -15,6 +15,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<result property="alarmValue3" column="alarm_value3"/>
|
||||
<result property="alarmValue4" column="alarm_value4"/>
|
||||
<result property="status" column="status" />
|
||||
<result property="radarId" column="radar_id" />
|
||||
<result property="radarNum" column="radar_num" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
|
|
@ -25,7 +27,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
|
||||
|
||||
<select id="selectRadarList" parameterType="com.ruoyi.common.core.domain.entity.SysRadar" resultMap="SysRadarResult">
|
||||
select r.id,r.radar_ip,r.radar_location,r.station_code,r.sort,r.alarm_value1,r.alarm_value2,r.alarm_value3,r.alarm_value4,r.status,r.create_by,r.create_time,r.update_by,r.update_time,r.remark from sys_radar r
|
||||
select r.id,r.radar_ip,r.radar_location,r.station_code,r.sort,r.alarm_value1,r.alarm_value2,r.alarm_value3,r.alarm_value4,r.status,r.radar_id,r.radar_num,r.create_by,r.create_time,r.update_by,r.update_time,r.remark from sys_radar r
|
||||
where r.del_flag = '0'
|
||||
<if test="radarLocation != null and radarLocation != ''">
|
||||
AND r.radar_location like concat('%',#{radarLocation}, '%')
|
||||
|
|
@ -43,6 +45,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="radarLocation != null and radarLocation != ''">radar_location,</if>
|
||||
<if test="stationCode != null and stationCode != ''">station_code,</if>
|
||||
<if test="sort != null and sort != ''">sort,</if>
|
||||
<if test="radarId != null and radarId != ''">radar_id,</if>
|
||||
<if test="radarNum != null and radarNum != ''">radar_num,</if>
|
||||
<if test="createBy != null and createBy != ''">create_by,</if>
|
||||
<if test="remark != null and remark != ''">remark,</if>
|
||||
alarm_value1,
|
||||
|
|
@ -57,6 +61,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="radarLocation != null and radarLocation != ''">#{radarLocation},</if>
|
||||
<if test="stationCode != null and stationCode != ''">#{stationCode},</if>
|
||||
<if test="sort != null and sort != ''">#{sort},</if>
|
||||
<if test="radarId != null and radarId != ''">#{radarId},</if>
|
||||
<if test="radarNum != null and radarNum != ''">#{radarNum},</if>
|
||||
<if test="createBy != null and createBy != ''">#{createBy},#,</if>
|
||||
<if test="remark != null and remark != ''">#{remark},</if>
|
||||
0,
|
||||
|
|
@ -69,7 +75,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
</insert>
|
||||
|
||||
<select id="selectRadarById" parameterType="Long" resultMap="SysRadarResult">
|
||||
select r.id,r.radar_ip,r.radar_location,r.station_code,r.alarm_value1,r.alarm_value2,r.alarm_value3,r.alarm_value4,r.status,r.sort,r.create_by,r.create_time,r.update_by,r.update_time,r.remark from sys_radar r
|
||||
select r.id,r.radar_ip,r.radar_location,r.station_code,r.alarm_value1,r.alarm_value2,r.alarm_value3,r.alarm_value4,r.radar_id,r.radar_num,r.status,r.sort,r.create_by,r.create_time,r.update_by,r.update_time,r.remark from sys_radar r
|
||||
where r.id = #{id}
|
||||
</select>
|
||||
|
||||
|
|
@ -81,6 +87,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="radarLocation != null and radarLocation != ''">radar_location = #{radarLocation},</if>
|
||||
<if test="stationCode != null and stationCode != ''">station_code = #{stationCode},</if>
|
||||
<if test="sort != null and sort != 0">sort = #{sort},</if>
|
||||
<if test="radarId != null and radarId != 0">radar_id = #{radarId},</if>
|
||||
<if test="radarNum != null and radarNum != 0">radar_num = #{radarNum},</if>
|
||||
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
|
||||
<if test="remark != null">remark = #{remark},</if>
|
||||
update_time = sysdate()
|
||||
|
|
@ -108,4 +116,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
</set>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<delete id="deleteRadarByIds">
|
||||
delete from sys_radar where id in (#{ids})
|
||||
</delete>
|
||||
|
||||
|
||||
|
||||
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue