From 7b3737e83bffe2e1b8c31cecb3374813e4f486d1 Mon Sep 17 00:00:00 2001 From: Yangwl <1726150332@qq.com> Date: Tue, 11 Apr 2023 13:57:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-basetyre/pom.xml | 1 + .../controller/BaseDeviceController.java | 5 + .../BaseElectronicFenceController.java | 109 ++++++++++++ .../controller/BaseTyreController.java | 8 +- .../basetyre/controller/ReportController.java | 44 +++++ .../basetyre/domain/BaseElectronicFence.java | 155 ++++++++++++++++++ .../com/ruoyi/basetyre/domain/BaseTyre.java | 9 + .../basetyre/domain/CollectTyresDetail.java | 12 +- .../com/ruoyi/basetyre/domain/vo/Alarm.java | 27 +++ .../ruoyi/basetyre/domain/vo/CarTyres.java | 2 + .../domain/vo/PatternTextureReport.java | 6 +- .../basetyre/mapper/BaseDeviceMapper.java | 2 + .../mapper/BaseElectronicFenceMapper.java | 61 +++++++ .../basetyre/service/IBaseDeviceService.java | 2 + .../service/IBaseElectronicFenceService.java | 61 +++++++ .../basetyre/service/IBaseTyreService.java | 4 + .../service/impl/BaseCarQueueServiceImpl.java | 3 + .../service/impl/BaseCarServiceImpl.java | 2 + .../service/impl/BaseCarTypeServiceImpl.java | 2 + .../service/impl/BaseDeviceServiceImpl.java | 14 ++ .../impl/BaseElectronicFenceServiceImpl.java | 95 +++++++++++ .../service/impl/BaseTyreServiceImpl.java | 72 ++++++-- .../mapper/basetyre/BaseCarMapper.xml | 12 +- .../mapper/basetyre/BaseCarQueueMapper.xml | 17 +- .../mapper/basetyre/BaseCarTypeMapper.xml | 9 +- .../mapper/basetyre/BaseDeviceMapper.xml | 14 +- .../basetyre/BaseElectronicFenceMapper.xml | 105 ++++++++++++ .../basetyre/BaseFireSetRecordMapper.xml | 2 +- .../BaseTyreHistoricalRecordsMapper.xml | 4 +- .../mapper/basetyre/BaseTyreMapper.xml | 8 +- .../basetyre/CollectMachineGpsMapper.xml | 2 +- ruoyi-common/pom.xml | 5 + .../common}/websocket/SemaphoreUtils.java | 5 +- .../common/websocket/WebSocketClient.java | 28 ++++ .../common/websocket/WebSocketConfig.java | 20 +++ .../common}/websocket/WebSocketServer.java | 51 +++++- .../common}/websocket/WebSocketUsers.java | 19 ++- ruoyi-framework/pom.xml | 5 +- .../framework/config/SecurityConfig.java | 2 +- .../web/service/SysLoginService.java | 6 + .../framework/websocket/WebSocketConfig.java | 39 ----- ruoyi-ui/.env.production | 2 +- ruoyi-ui/src/api/report/report.js | 8 + .../src/layout/components/TagsView/index.vue | 5 + .../src/views/deviceManagement/info/index.vue | 9 +- ruoyi-ui/src/views/index.vue | 31 +++- ruoyi-ui/src/views/login.vue | 4 + .../src/views/tireManagement/info/index.vue | 1 + 48 files changed, 1010 insertions(+), 99 deletions(-) create mode 100644 ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/controller/BaseElectronicFenceController.java create mode 100644 ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/controller/ReportController.java create mode 100644 ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/domain/BaseElectronicFence.java create mode 100644 ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/mapper/BaseElectronicFenceMapper.java create mode 100644 ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/IBaseElectronicFenceService.java create mode 100644 ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/impl/BaseElectronicFenceServiceImpl.java create mode 100644 ruoyi-basetyre/src/main/resources/mapper/basetyre/BaseElectronicFenceMapper.xml rename {ruoyi-framework/src/main/java/com/ruoyi/framework => ruoyi-common/src/main/java/com/ruoyi/common}/websocket/SemaphoreUtils.java (96%) create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/websocket/WebSocketClient.java create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/websocket/WebSocketConfig.java rename {ruoyi-framework/src/main/java/com/ruoyi/framework => ruoyi-common/src/main/java/com/ruoyi/common}/websocket/WebSocketServer.java (61%) rename {ruoyi-framework/src/main/java/com/ruoyi/framework => ruoyi-common/src/main/java/com/ruoyi/common}/websocket/WebSocketUsers.java (86%) delete mode 100644 ruoyi-framework/src/main/java/com/ruoyi/framework/websocket/WebSocketConfig.java diff --git a/ruoyi-basetyre/pom.xml b/ruoyi-basetyre/pom.xml index fd7afa7..089066c 100644 --- a/ruoyi-basetyre/pom.xml +++ b/ruoyi-basetyre/pom.xml @@ -27,6 +27,7 @@ 1.6.2 compile + com.ruoyi ruoyi-system diff --git a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/controller/BaseDeviceController.java b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/controller/BaseDeviceController.java index d96c534..d52b3d3 100644 --- a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/controller/BaseDeviceController.java +++ b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/controller/BaseDeviceController.java @@ -3,6 +3,7 @@ package com.ruoyi.basetyre.controller; import com.ruoyi.basetyre.domain.BaseDevice; import com.ruoyi.basetyre.service.IBaseDeviceService; import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; @@ -71,6 +72,10 @@ public class BaseDeviceController extends BaseController @PostMapping public AjaxResult add(@RequestBody BaseDevice baseDevice) { + if (UserConstants.NOT_UNIQUE.equals(baseDeviceService.checkBaseDeviceUnique(baseDevice))) + { + return error("新增设备'" + baseDevice.getInternetThingsNo()+ "'失败,设备已存在"); + } return toAjax(baseDeviceService.insertBaseDevice(baseDevice)); } diff --git a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/controller/BaseElectronicFenceController.java b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/controller/BaseElectronicFenceController.java new file mode 100644 index 0000000..cad2037 --- /dev/null +++ b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/controller/BaseElectronicFenceController.java @@ -0,0 +1,109 @@ +package com.ruoyi.basetyre.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.basetyre.domain.BaseElectronicFence; +import com.ruoyi.basetyre.service.IBaseElectronicFenceService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 电子围栏Controller + * + * @author Yangwl + * @date 2023-04-07 + */ +@RestController +@RequestMapping("/basetyre/fence") +public class BaseElectronicFenceController extends BaseController +{ + @Autowired + private IBaseElectronicFenceService baseElectronicFenceService; + + /** + * 查询电子围栏列表 + */ + @PreAuthorize("@ss.hasPermi('basetyre:fence:list')") + @GetMapping("/list") + public TableDataInfo list(BaseElectronicFence baseElectronicFence) + { + startPage(); + List list = baseElectronicFenceService.selectBaseElectronicFenceList(baseElectronicFence); + return getDataTable(list); + } + + /** + * 导出电子围栏列表 + */ + @PreAuthorize("@ss.hasPermi('basetyre:fence:export')") + @Log(title = "电子围栏", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, BaseElectronicFence baseElectronicFence) + { + List list = baseElectronicFenceService.selectBaseElectronicFenceList(baseElectronicFence); + ExcelUtil util = new ExcelUtil(BaseElectronicFence.class); + util.exportExcel(response, list, "电子围栏数据"); + } + + /** + * 获取电子围栏详细信息 + */ + @PreAuthorize("@ss.hasPermi('basetyre:fence:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") String id) + { + return success(baseElectronicFenceService.selectBaseElectronicFenceById(id)); + } + + /** + * 新增电子围栏 + */ + @PreAuthorize("@ss.hasPermi('basetyre:fence:add')") + @Log(title = "电子围栏", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(List baseElectronicFenceList) + { + for (BaseElectronicFence baseElectronicFence: + baseElectronicFenceList ) { + baseElectronicFenceService.insertBaseElectronicFence(baseElectronicFence); + } + + return null; + } + + /** + * 修改电子围栏 + */ + @PreAuthorize("@ss.hasPermi('basetyre:fence:edit')") + @Log(title = "电子围栏", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody BaseElectronicFence baseElectronicFence) + { + return toAjax(baseElectronicFenceService.updateBaseElectronicFence(baseElectronicFence)); + } + + /** + * 删除电子围栏 + */ + @PreAuthorize("@ss.hasPermi('basetyre:fence:remove')") + @Log(title = "电子围栏", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable String[] ids) + { + return toAjax(baseElectronicFenceService.deleteBaseElectronicFenceByIds(ids)); + } +} diff --git a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/controller/BaseTyreController.java b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/controller/BaseTyreController.java index 02a2869..305df6d 100644 --- a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/controller/BaseTyreController.java +++ b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/controller/BaseTyreController.java @@ -1,6 +1,7 @@ package com.ruoyi.basetyre.controller; import com.ruoyi.basetyre.domain.BaseTyre; +import com.ruoyi.basetyre.domain.CollectTyresDetail; import com.ruoyi.basetyre.domain.vo.CarTyres; import com.ruoyi.basetyre.service.IBaseTyreService; import com.ruoyi.common.annotation.Log; @@ -19,6 +20,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.List; import java.util.Map; @@ -194,7 +196,9 @@ public class BaseTyreController extends BaseController public AjaxResult TyreMileage(@RequestBody CarTyres carTyres){ return baseTyreService.TyreMileage(carTyres); } + @PostMapping("/TyreWarring") + public AjaxResult TyreWarring(@RequestBody CollectTyresDetail collectTyresDetail) throws IOException { - - + return baseTyreService.TyreWaringReprt(collectTyresDetail); + } } diff --git a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/controller/ReportController.java b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/controller/ReportController.java new file mode 100644 index 0000000..2c54ac3 --- /dev/null +++ b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/controller/ReportController.java @@ -0,0 +1,44 @@ +package com.ruoyi.basetyre.controller; + +import com.ruoyi.basetyre.domain.BaseCar; +import com.ruoyi.basetyre.domain.BaseTyre; +import com.ruoyi.basetyre.service.IBaseCarService; +import com.ruoyi.basetyre.service.IBaseTyreService; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.poi.ExcelUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@RestController +@RequestMapping("/report") +public class ReportController { + @Autowired + private IBaseCarService iBaseCarService; + @Autowired + private IBaseTyreService iBaseTyreService; + @PostMapping("/indexreport") + public AjaxResult indexreport() + { + Map map=new HashMap(); + List baseCarList=iBaseCarService.selectBaseCarList(new BaseCar()); + map.put("carMap",baseCarList); + map.put("carTotal",baseCarList.size()); + baseCarList=baseCarList.stream().filter(item-> !StringUtils.isBlank(item.getDeviceId())).collect(Collectors.toList()); + map.put("carBindGps",baseCarList.size()); + List baseTyreList =iBaseTyreService.selectBaseTyreList(new BaseTyre()); + map.put("tyreTotal",baseTyreList.size()); + baseTyreList=baseTyreList.stream().filter(item-> !StringUtils.isBlank(item.getSensorId())).collect(Collectors.toList()); + map.put("tyreBindSensor",baseTyreList.size()); + + return AjaxResult.success(map); + } +} diff --git a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/domain/BaseElectronicFence.java b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/domain/BaseElectronicFence.java new file mode 100644 index 0000000..5a872b9 --- /dev/null +++ b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/domain/BaseElectronicFence.java @@ -0,0 +1,155 @@ +package com.ruoyi.basetyre.domain; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 电子围栏对象 base_electronic_fence + * + * @author Yangwl + * @date 2023-04-07 + */ +public class BaseElectronicFence extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键 */ + private String id; + + /** 车辆id */ + @Excel(name = "车辆id") + private String carId; + + /** 维度 */ + @Excel(name = "维度") + private Long latitude; + + /** 经度 */ + @Excel(name = "经度") + private Long longitude; + + /** 创建人姓名 */ + @Excel(name = "创建人姓名") + private String createName; + + /** 编辑时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "编辑时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date modifyTime; + + /** 编辑人 */ + @Excel(name = "编辑人") + private String modifyBy; + + /** $column.columnComment */ + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private String other1; + + /** $column.columnComment */ + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private String other2; + + public void setId(String id) + { + this.id = id; + } + + public String getId() + { + return id; + } + public void setCarId(String carId) + { + this.carId = carId; + } + + public String getCarId() + { + return carId; + } + public void setLatitude(Long latitude) + { + this.latitude = latitude; + } + + public Long getLatitude() + { + return latitude; + } + public void setLongitude(Long longitude) + { + this.longitude = longitude; + } + + public Long getLongitude() + { + return longitude; + } + public void setCreateName(String createName) + { + this.createName = createName; + } + + public String getCreateName() + { + return createName; + } + public void setModifyTime(Date modifyTime) + { + this.modifyTime = modifyTime; + } + + public Date getModifyTime() + { + return modifyTime; + } + public void setModifyBy(String modifyBy) + { + this.modifyBy = modifyBy; + } + + public String getModifyBy() + { + return modifyBy; + } + public void setOther1(String other1) + { + this.other1 = other1; + } + + public String getOther1() + { + return other1; + } + public void setOther2(String other2) + { + this.other2 = other2; + } + + public String getOther2() + { + return other2; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("carId", getCarId()) + .append("latitude", getLatitude()) + .append("longitude", getLongitude()) + .append("createTime", getCreateTime()) + .append("createBy", getCreateBy()) + .append("createName", getCreateName()) + .append("modifyTime", getModifyTime()) + .append("modifyBy", getModifyBy()) + .append("remark", getRemark()) + .append("other1", getOther1()) + .append("other2", getOther2()) + .toString(); + } +} diff --git a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/domain/BaseTyre.java b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/domain/BaseTyre.java index 3c87a1b..00048e3 100644 --- a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/domain/BaseTyre.java +++ b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/domain/BaseTyre.java @@ -210,8 +210,17 @@ public class BaseTyre extends BaseEntity private String temperature; //压力 private String pressure; + //企业编码 + @Excel(name = "企业") + private String companyCode; + public String getCompanyCode() { + return companyCode; + } + public void setCompanyCode(String companyCode) { + this.companyCode = companyCode; + } public String getTemperature() { return temperature; diff --git a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/domain/CollectTyresDetail.java b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/domain/CollectTyresDetail.java index 7707e9a..be75879 100644 --- a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/domain/CollectTyresDetail.java +++ b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/domain/CollectTyresDetail.java @@ -128,7 +128,17 @@ public class CollectTyresDetail extends BaseEntity @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") private Long longitude; - public void setId(String id) + private String reportTime; + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + + public void setId(String id) { this.id = id; } diff --git a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/domain/vo/Alarm.java b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/domain/vo/Alarm.java index 84da525..f197a56 100644 --- a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/domain/vo/Alarm.java +++ b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/domain/vo/Alarm.java @@ -14,9 +14,36 @@ public class Alarm extends BaseEntity{ private String size; private String pressvalue; private String temperaturevalue; + private String ispowerinvalue; private String ispresshigh; private String ispresslower; private String istemperaturehigh; + private String tyrePosition; + private String reportTime; + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + + public String getIspowerinvalue() { + return ispowerinvalue; + } + + public void setIspowerinvalue(String ispowerinvalue) { + this.ispowerinvalue = ispowerinvalue; + } + + public String getTyrePosition() { + return tyrePosition; + } + + public void setTyrePosition(String tyrePosition) { + this.tyrePosition = tyrePosition; + } public String getSensorid() { diff --git a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/domain/vo/CarTyres.java b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/domain/vo/CarTyres.java index eed482c..16fa111 100644 --- a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/domain/vo/CarTyres.java +++ b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/domain/vo/CarTyres.java @@ -28,6 +28,8 @@ public class CarTyres { private BigDecimal currentTextureDepth; //操作类型 1,上胎 2,换胎 3,卸胎 4,花纹变更 private String type; + //里程表读数 + private int carOnlineMileage; diff --git a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/domain/vo/PatternTextureReport.java b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/domain/vo/PatternTextureReport.java index ca1b7cc..96fd60f 100644 --- a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/domain/vo/PatternTextureReport.java +++ b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/domain/vo/PatternTextureReport.java @@ -1,10 +1,14 @@ package com.ruoyi.basetyre.domain.vo; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; +import java.util.Date; + @Data public class PatternTextureReport { private double textureDepth; private int course; - private Data time; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; } diff --git a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/mapper/BaseDeviceMapper.java b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/mapper/BaseDeviceMapper.java index 462e60e..7528c8c 100644 --- a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/mapper/BaseDeviceMapper.java +++ b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/mapper/BaseDeviceMapper.java @@ -60,4 +60,6 @@ public interface BaseDeviceMapper public int deleteBaseDeviceByIds(String[] ids); BaseDevice selectBaseDeviceByno(BaseDevice baseDevice); + + BaseDevice checkBaseDeviceUnique(String internetThingsNo); } diff --git a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/mapper/BaseElectronicFenceMapper.java b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/mapper/BaseElectronicFenceMapper.java new file mode 100644 index 0000000..cb3aa68 --- /dev/null +++ b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/mapper/BaseElectronicFenceMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.basetyre.mapper; + +import java.util.List; +import com.ruoyi.basetyre.domain.BaseElectronicFence; + +/** + * 电子围栏Mapper接口 + * + * @author Yangwl + * @date 2023-04-07 + */ +public interface BaseElectronicFenceMapper +{ + /** + * 查询电子围栏 + * + * @param id 电子围栏主键 + * @return 电子围栏 + */ + public BaseElectronicFence selectBaseElectronicFenceById(String id); + + /** + * 查询电子围栏列表 + * + * @param baseElectronicFence 电子围栏 + * @return 电子围栏集合 + */ + public List selectBaseElectronicFenceList(BaseElectronicFence baseElectronicFence); + + /** + * 新增电子围栏 + * + * @param baseElectronicFence 电子围栏 + * @return 结果 + */ + public int insertBaseElectronicFence(BaseElectronicFence baseElectronicFence); + + /** + * 修改电子围栏 + * + * @param baseElectronicFence 电子围栏 + * @return 结果 + */ + public int updateBaseElectronicFence(BaseElectronicFence baseElectronicFence); + + /** + * 删除电子围栏 + * + * @param id 电子围栏主键 + * @return 结果 + */ + public int deleteBaseElectronicFenceById(String id); + + /** + * 批量删除电子围栏 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteBaseElectronicFenceByIds(String[] ids); +} diff --git a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/IBaseDeviceService.java b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/IBaseDeviceService.java index 71fe627..964f036 100644 --- a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/IBaseDeviceService.java +++ b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/IBaseDeviceService.java @@ -58,4 +58,6 @@ public interface IBaseDeviceService * @return 结果 */ public int deleteBaseDeviceById(String id); + + String checkBaseDeviceUnique(BaseDevice baseDevice); } diff --git a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/IBaseElectronicFenceService.java b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/IBaseElectronicFenceService.java new file mode 100644 index 0000000..7c7db2c --- /dev/null +++ b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/IBaseElectronicFenceService.java @@ -0,0 +1,61 @@ +package com.ruoyi.basetyre.service; + +import java.util.List; +import com.ruoyi.basetyre.domain.BaseElectronicFence; + +/** + * 电子围栏Service接口 + * + * @author Yangwl + * @date 2023-04-07 + */ +public interface IBaseElectronicFenceService +{ + /** + * 查询电子围栏 + * + * @param id 电子围栏主键 + * @return 电子围栏 + */ + public BaseElectronicFence selectBaseElectronicFenceById(String id); + + /** + * 查询电子围栏列表 + * + * @param baseElectronicFence 电子围栏 + * @return 电子围栏集合 + */ + public List selectBaseElectronicFenceList(BaseElectronicFence baseElectronicFence); + + /** + * 新增电子围栏 + * + * @param baseElectronicFence 电子围栏 + * @return 结果 + */ + public int insertBaseElectronicFence(BaseElectronicFence baseElectronicFence); + + /** + * 修改电子围栏 + * + * @param baseElectronicFence 电子围栏 + * @return 结果 + */ + public int updateBaseElectronicFence(BaseElectronicFence baseElectronicFence); + + /** + * 批量删除电子围栏 + * + * @param ids 需要删除的电子围栏主键集合 + * @return 结果 + */ + public int deleteBaseElectronicFenceByIds(String[] ids); + + /** + * 删除电子围栏信息 + * + * @param id 电子围栏主键 + * @return 结果 + */ + public int deleteBaseElectronicFenceById(String id); +} diff --git a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/IBaseTyreService.java b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/IBaseTyreService.java index 62e512b..c7e256c 100644 --- a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/IBaseTyreService.java +++ b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/IBaseTyreService.java @@ -1,9 +1,11 @@ package com.ruoyi.basetyre.service; +import java.io.IOException; import java.util.List; import com.ruoyi.basetyre.domain.BaseTyre; +import com.ruoyi.basetyre.domain.CollectTyresDetail; import com.ruoyi.basetyre.domain.vo.CarTyres; import com.ruoyi.common.core.domain.AjaxResult; @@ -82,4 +84,6 @@ public interface IBaseTyreService AjaxResult TyreMileage(CarTyres carTyres); AjaxResult EditPatternTextureDepth(CarTyres carTyres); + + AjaxResult TyreWaringReprt(CollectTyresDetail collectTyresDetail) throws IOException; } diff --git a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/impl/BaseCarQueueServiceImpl.java b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/impl/BaseCarQueueServiceImpl.java index 4712b55..1749819 100644 --- a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/impl/BaseCarQueueServiceImpl.java +++ b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/impl/BaseCarQueueServiceImpl.java @@ -4,6 +4,7 @@ import java.util.List; import java.util.UUID; import com.ruoyi.basetyre.domain.BaseCarQueue; +import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.utils.DateUtils; @@ -45,6 +46,7 @@ public class BaseCarQueueServiceImpl implements IBaseCarQueueService * @return 车队信息管理 */ @Override + @DataScope(deptAlias = "d", userAlias = "u") public List selectBaseCarQueueList(BaseCarQueue baseCarQueue) { return baseCarQueueMapper.selectBaseCarQueueList(baseCarQueue); @@ -108,6 +110,7 @@ public class BaseCarQueueServiceImpl implements IBaseCarQueueService } @Override + @DataScope(deptAlias = "d", userAlias = "u") public List carQueuelist(BaseCarQueue baseCarQueue) { return baseCarQueueMapper.carQueuelist(baseCarQueue); } diff --git a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/impl/BaseCarServiceImpl.java b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/impl/BaseCarServiceImpl.java index 2528790..bf26272 100644 --- a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/impl/BaseCarServiceImpl.java +++ b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/impl/BaseCarServiceImpl.java @@ -9,6 +9,7 @@ import com.ruoyi.basetyre.domain.BaseTyreGpsRecord; import com.ruoyi.basetyre.domain.BaseTyreHistoricalRecords; import com.ruoyi.basetyre.domain.vo.CarTyres; import com.ruoyi.basetyre.mapper.BaseTyreHistoricalRecordsMapper; +import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.utils.DateUtils; @@ -61,6 +62,7 @@ public class BaseCarServiceImpl implements IBaseCarService } @Override + @DataScope(deptAlias = "d", userAlias = "u") public List queryList(BaseCar baseCar) { return baseCarMapper.queryList(baseCar); } diff --git a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/impl/BaseCarTypeServiceImpl.java b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/impl/BaseCarTypeServiceImpl.java index 45d2455..452ca46 100644 --- a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/impl/BaseCarTypeServiceImpl.java +++ b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/impl/BaseCarTypeServiceImpl.java @@ -3,6 +3,7 @@ package com.ruoyi.basetyre.service.impl; import java.util.List; import java.util.UUID; +import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.utils.DateUtils; @@ -45,6 +46,7 @@ public class BaseCarTypeServiceImpl implements IBaseCarTypeService * @return 车辆类型 */ @Override + @DataScope(deptAlias = "d", userAlias = "u") public List selectBaseCarTypeList(BaseCarType baseCarType) { return baseCarTypeMapper.selectBaseCarTypeList(baseCarType); diff --git a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/impl/BaseDeviceServiceImpl.java b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/impl/BaseDeviceServiceImpl.java index 871b993..e6f7d27 100644 --- a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/impl/BaseDeviceServiceImpl.java +++ b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/impl/BaseDeviceServiceImpl.java @@ -3,9 +3,12 @@ package com.ruoyi.basetyre.service.impl; import java.util.List; import java.util.UUID; +import com.ruoyi.common.annotation.DataScope; +import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.basetyre.mapper.BaseDeviceMapper; @@ -43,6 +46,7 @@ public class BaseDeviceServiceImpl implements IBaseDeviceService * @return 设备管理 */ @Override + @DataScope(deptAlias = "d", userAlias = "u") public List selectBaseDeviceList(BaseDevice baseDevice) { return baseDeviceMapper.selectBaseDeviceList(baseDevice); @@ -100,4 +104,14 @@ public class BaseDeviceServiceImpl implements IBaseDeviceService { return baseDeviceMapper.deleteBaseDeviceById(id); } + + @Override + public String checkBaseDeviceUnique(BaseDevice baseDevice) { + BaseDevice info = baseDeviceMapper.checkBaseDeviceUnique(baseDevice.getInternetThingsNo()); + if (StringUtils.isNotNull(info) && baseDevice.getInternetThingsNo().equals(info.getInternetThingsNo())) + { + return UserConstants.NOT_UNIQUE; + } + return UserConstants.UNIQUE; + } } diff --git a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/impl/BaseElectronicFenceServiceImpl.java b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/impl/BaseElectronicFenceServiceImpl.java new file mode 100644 index 0000000..5dfaabf --- /dev/null +++ b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/impl/BaseElectronicFenceServiceImpl.java @@ -0,0 +1,95 @@ +package com.ruoyi.basetyre.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.basetyre.mapper.BaseElectronicFenceMapper; +import com.ruoyi.basetyre.domain.BaseElectronicFence; +import com.ruoyi.basetyre.service.IBaseElectronicFenceService; + +/** + * 电子围栏Service业务层处理 + * + * @author Yangwl + * @date 2023-04-07 + */ +@Service +public class BaseElectronicFenceServiceImpl implements IBaseElectronicFenceService +{ + @Autowired + private BaseElectronicFenceMapper baseElectronicFenceMapper; + + /** + * 查询电子围栏 + * + * @param id 电子围栏主键 + * @return 电子围栏 + */ + @Override + public BaseElectronicFence selectBaseElectronicFenceById(String id) + { + return baseElectronicFenceMapper.selectBaseElectronicFenceById(id); + } + + /** + * 查询电子围栏列表 + * + * @param baseElectronicFence 电子围栏 + * @return 电子围栏 + */ + @Override + public List selectBaseElectronicFenceList(BaseElectronicFence baseElectronicFence) + { + return baseElectronicFenceMapper.selectBaseElectronicFenceList(baseElectronicFence); + } + + /** + * 新增电子围栏 + * + * @param baseElectronicFence 电子围栏 + * @return 结果 + */ + @Override + public int insertBaseElectronicFence(BaseElectronicFence baseElectronicFence) + { + baseElectronicFence.setCreateTime(DateUtils.getNowDate()); + return baseElectronicFenceMapper.insertBaseElectronicFence(baseElectronicFence); + } + + /** + * 修改电子围栏 + * + * @param baseElectronicFence 电子围栏 + * @return 结果 + */ + @Override + public int updateBaseElectronicFence(BaseElectronicFence baseElectronicFence) + { + return baseElectronicFenceMapper.updateBaseElectronicFence(baseElectronicFence); + } + + /** + * 批量删除电子围栏 + * + * @param ids 需要删除的电子围栏主键 + * @return 结果 + */ + @Override + public int deleteBaseElectronicFenceByIds(String[] ids) + { + return baseElectronicFenceMapper.deleteBaseElectronicFenceByIds(ids); + } + + /** + * 删除电子围栏信息 + * + * @param id 电子围栏主键 + * @return 结果 + */ + @Override + public int deleteBaseElectronicFenceById(String id) + { + return baseElectronicFenceMapper.deleteBaseElectronicFenceById(id); + } +} diff --git a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/impl/BaseTyreServiceImpl.java b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/impl/BaseTyreServiceImpl.java index b85e482..967bcf5 100644 --- a/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/impl/BaseTyreServiceImpl.java +++ b/ruoyi-basetyre/src/main/java/com/ruoyi/basetyre/service/impl/BaseTyreServiceImpl.java @@ -1,41 +1,41 @@ package com.ruoyi.basetyre.service.impl; +import java.io.IOException; import java.util.*; -import java.util.stream.Collectors; -import com.ruoyi.basetyre.domain.BaseDevice; -import com.ruoyi.basetyre.domain.BaseTyreHistoricalRecords; +import com.alibaba.fastjson2.JSONObject; +import com.ruoyi.basetyre.domain.*; +import com.ruoyi.basetyre.domain.vo.Alarm; import com.ruoyi.basetyre.domain.vo.CarTyres; import com.ruoyi.basetyre.domain.vo.TyresLife; import com.ruoyi.basetyre.domain.vo.TyresLifeInfo; +import com.ruoyi.basetyre.mapper.BaseCarMapper; import com.ruoyi.basetyre.mapper.BaseDeviceMapper; import com.ruoyi.basetyre.mapper.BaseTyreHistoricalRecordsMapper; -import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.websocket.WebSocketServer; +import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.bean.BeanValidators; +import com.ruoyi.common.websocket.WebSocketUsers; import com.ruoyi.system.service.ISysConfigService; -import com.ruoyi.system.service.impl.SysUserServiceImpl; -import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ; import org.apache.ibatis.session.SqlSessionFactory; -import org.checkerframework.checker.units.qual.A; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.basetyre.mapper.BaseTyreMapper; -import com.ruoyi.basetyre.domain.BaseTyre; import com.ruoyi.basetyre.service.IBaseTyreService; +import org.springframework.web.socket.client.WebSocketClient; import javax.annotation.Resource; import javax.validation.Validator; +import javax.websocket.Session; /** * 轮胎基础Service业务层处理 @@ -62,6 +62,10 @@ public class BaseTyreServiceImpl implements IBaseTyreService @Autowired protected Validator validator; + @Autowired + private BaseCarMapper baseCarMapper; + + /** * 查询轮胎基础 @@ -82,6 +86,7 @@ public class BaseTyreServiceImpl implements IBaseTyreService * @return 轮胎基础 */ @Override + @DataScope(deptAlias = "d", userAlias = "u") public List selectBaseTyreList(BaseTyre baseTyre) { baseTyre.setIsDelete((long) 0); @@ -301,6 +306,7 @@ public class BaseTyreServiceImpl implements IBaseTyreService baseTyreHistoricalRecords.setCarId(carTyres.getCarId()); baseTyreHistoricalRecords.setCarLicense(carTyres.getCarLicense()); baseTyreHistoricalRecords.setType(String.valueOf(type)); + baseTyreHistoricalRecords.setCarOnlineMileage(carTyres.getCarOnlineMileage()); baseTyreHistoricalRecords.setTextureDepth(carTyres.getCurrentTextureDepth()); baseTyreHistoricalRecords.setCreateTime(DateUtils.getNowDate()); baseTyreHistoricalRecordsMapper.insertBaseTyreHistoricalRecords(baseTyreHistoricalRecords); @@ -335,6 +341,7 @@ public class BaseTyreServiceImpl implements IBaseTyreService baseTyreHistoricalRecords.setCarId(carTyres.getCarId()); baseTyreHistoricalRecords.setCarLicense(carTyres.getCarLicense()); baseTyreHistoricalRecords.setType(String.valueOf(carTyres.getType())); + baseTyreHistoricalRecords.setCarOnlineMileage(carTyres.getCarOnlineMileage()); baseTyreHistoricalRecords.setTextureDepth(carTyres.getCurrentTextureDepth()); baseTyreHistoricalRecords.setCreateTime(DateUtils.getNowDate()); baseTyreHistoricalRecordsMapper.insertBaseTyreHistoricalRecords(baseTyreHistoricalRecords); @@ -474,7 +481,7 @@ public class BaseTyreServiceImpl implements IBaseTyreService @Override public AjaxResult EditPatternTextureDepth(CarTyres carTyres) { - if (carTyres.getType().equals(4)){ + if (carTyres.getType().equals("4")){ //更新车辆最新的花纹深度 BaseTyre baseTyre = new BaseTyre(); baseTyre.setId(carTyres.getTyreId()); @@ -482,8 +489,49 @@ public class BaseTyreServiceImpl implements IBaseTyreService baseTyreMapper.updateBaseTyre(baseTyre); //插入一条新记录 BaseTyreHistoricalRecords baseTyreHistoricalRecords=new BaseTyreHistoricalRecords(); + baseTyreHistoricalRecords.setId(UUID.randomUUID().toString()); + baseTyreHistoricalRecords.setTyreId(carTyres.getTyreId()); + baseTyreHistoricalRecords.setTyrePosition(carTyres.getTyrePosition()); + baseTyreHistoricalRecords.setTyrePositionNum(Long.valueOf(carTyres.getTyrePosition().substring(carTyres.getTyrePosition().lastIndexOf("-")+1))); + baseTyreHistoricalRecords.setCarId(carTyres.getCarId()); + baseTyreHistoricalRecords.setCarLicense(carTyres.getCarLicense()); + baseTyreHistoricalRecords.setType(String.valueOf(carTyres.getType())); + baseTyreHistoricalRecords.setTextureDepth(carTyres.getCurrentTextureDepth()); + baseTyreHistoricalRecords.setCarOnlineMileage(carTyres.getCarOnlineMileage()); + baseTyreHistoricalRecords.setCreateTime(DateUtils.getNowDate()); + return AjaxResult.success(baseTyreHistoricalRecordsMapper.insertBaseTyreHistoricalRecords(baseTyreHistoricalRecords)); + } + return AjaxResult.error("操作错误!"); + } + /** + * 报警业务逻辑处理 + * @param collectTyresDetail + * @return + */ + @Override + public AjaxResult TyreWaringReprt(CollectTyresDetail collectTyresDetail) throws IOException { + /** + * 1、Websocket 通讯通知前台报警 + * 2、发消息给微信小程序端log + */ + if (!StringUtils.isBlank(collectTyresDetail.getCarId())){ + BaseTyre baseTyre=baseTyreMapper.selectBaseTyreById(collectTyresDetail.getTyreId()); + BaseCar baseCar =baseCarMapper.selectBaseCarById(collectTyresDetail.getCarId()); + Alarm alarm=new Alarm(); + alarm.setCarLicense(baseCar.getCarLicense()); + alarm.setTyrePosition(baseTyre.getTyrePosition()); + alarm.setIspowerinvalue(collectTyresDetail.getIspowerinvalue().toString()); + alarm.setIspresshigh(collectTyresDetail.getIspresshigh().toString()); + alarm.setIspresslower(collectTyresDetail.getIspresslower().toString()); + alarm.setIstemperaturehigh(collectTyresDetail.getIstemperaturehigh().toString()); + alarm.setReportTime(collectTyresDetail.getReportTime()); + WebSocketServer.sendMessage(baseTyre.getCompanyCode(), JSONObject.toJSONString(alarm)); } +// Session session= WebSocketServer.USER_SESSIONS.get(loginUser.getUserId().toString()); +// if (session !=null){ +// session.getBasicRemote().sendText("报警了"); +// } return null; } @@ -493,6 +541,4 @@ public class BaseTyreServiceImpl implements IBaseTyreService return baseTyreMapper.getTyreInfoById(outerTireNumber); } - - } diff --git a/ruoyi-basetyre/src/main/resources/mapper/basetyre/BaseCarMapper.xml b/ruoyi-basetyre/src/main/resources/mapper/basetyre/BaseCarMapper.xml index 2581b0b..b10fa70 100644 --- a/ruoyi-basetyre/src/main/resources/mapper/basetyre/BaseCarMapper.xml +++ b/ruoyi-basetyre/src/main/resources/mapper/basetyre/BaseCarMapper.xml @@ -79,11 +79,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" base_car bc LEFT JOIN base_car_queue bcq ON bc.car_queue_id = bcq.id LEFT JOIN base_car_type bct ON bct.id = bc.car_type_id + left join sys_user_role ur on bc.create_by = ur.user_id + left join sys_user u on u.user_id = ur.user_id + left join sys_dept d on u.dept_id = d.dept_id - bc.is_delete != '1' and bc.id = #{id} and bc.car_license like concat('%', #{carLicense}, '%') + + ${params.dataScope} + - + select id, tyre_fac_code, company_code, title, state, group_total, car_total, is_delete, bcq.create_time, bcq.create_id, bcq.create_by, bcq.create_name, bcq.modify_time, bcq.modify_id, bcq.modify_by, bcq.modify__name + from base_car_queue bcq + left join sys_user_role ur on bcq.create_by = ur.user_id + left join sys_user u on u.user_id = ur.user_id + left join sys_dept d on u.dept_id = d.dept_id and tyre_fac_code = #{tyreFacCode} and company_code = #{companyCode} @@ -45,11 +49,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and car_total = #{carTotal} and is_delete = #{isDelete} and create_id = #{createId} - and create_name like concat('%', #{createName}, '%') + and bcq.create_name like concat('%', #{createName}, '%') and modify_time = #{modifyTime} and modify_id = #{modifyId} and modify_by = #{modifyBy} - and modify__name like concat('%', #{modifyName}, '%') + and bcq.modify__name like concat('%', #{modifyName}, '%') + + ${params.dataScope} @@ -73,9 +79,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" base_car_queue bcq LEFT JOIN base_car bc on bcq.id = bc.car_queue_id LEFT JOIN base_car_type bct on bct.id=bc.car_type_id + left join sys_user_role ur on bcq.create_by = ur.user_id + left join sys_user u on u.user_id = ur.user_id + left join sys_dept d on u.dept_id = d.dept_id bcq.is_delete = '0' and bc.is_delete = '0' and bcq.title = #{title} + + ${params.dataScope} - + select id, tyre_fac_code, company_code, code, title, state, axle_total, tyre_total, is_delete, bct.create_time, create_id, bct.create_by, bct.create_name, bct.modify_time, bct.modify_id, bct.modify_by, bct.modify__name, trailer_num from base_car_type bct + left join sys_user_role ur on bct.create_by = ur.user_id + left join sys_user u on u.user_id = ur.user_id + left join sys_dept d on u.dept_id = d.dept_id and tyre_fac_code = #{tyreFacCode} and company_code = #{companyCode} @@ -47,6 +50,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and modify_by = #{modifyBy} and modify__name like concat('%', #{modifyName}, '%') and trailer_num = #{trailerNum} + + ${params.dataScope} diff --git a/ruoyi-basetyre/src/main/resources/mapper/basetyre/BaseDeviceMapper.xml b/ruoyi-basetyre/src/main/resources/mapper/basetyre/BaseDeviceMapper.xml index e843990..e37fb7c 100644 --- a/ruoyi-basetyre/src/main/resources/mapper/basetyre/BaseDeviceMapper.xml +++ b/ruoyi-basetyre/src/main/resources/mapper/basetyre/BaseDeviceMapper.xml @@ -26,16 +26,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, tyre_fac_code, company_code, internet_things_no, sim_code, device_type, state, active_time, last_run_time, is_delete, create_time, create_id, create_by, create_name, modify_time, modify_id, modify_by, modify__name from base_device + select id, tyre_fac_code, company_code, internet_things_no, sim_code, device_type, state, active_time, last_run_time, is_delete, bd.create_time, create_id, bd.create_by, bd.create_name, bd.modify_time, bd.modify_id, bd.modify_by, bd.modify__name from base_device bd @@ -58,6 +63,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where internet_things_no = #{internetThingsNo} + insert into base_device diff --git a/ruoyi-basetyre/src/main/resources/mapper/basetyre/BaseElectronicFenceMapper.xml b/ruoyi-basetyre/src/main/resources/mapper/basetyre/BaseElectronicFenceMapper.xml new file mode 100644 index 0000000..c57eba1 --- /dev/null +++ b/ruoyi-basetyre/src/main/resources/mapper/basetyre/BaseElectronicFenceMapper.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + select id, car_id, latitude, longitude, create_time, create_by, create_name, modify_time, modify_by, remark, other1, other2 from base_electronic_fence + + + + + + + + insert into base_electronic_fence + + id, + car_id, + latitude, + longitude, + create_time, + create_by, + create_name, + modify_time, + modify_by, + remark, + other1, + other2, + + + #{id}, + #{carId}, + #{latitude}, + #{longitude}, + #{createTime}, + #{createBy}, + #{createName}, + #{modifyTime}, + #{modifyBy}, + #{remark}, + #{other1}, + #{other2}, + + + + + update base_electronic_fence + + car_id = #{carId}, + latitude = #{latitude}, + longitude = #{longitude}, + create_time = #{createTime}, + create_by = #{createBy}, + create_name = #{createName}, + modify_time = #{modifyTime}, + modify_by = #{modifyBy}, + remark = #{remark}, + other1 = #{other1}, + other2 = #{other2}, + + where id = #{id} + + + + delete from base_electronic_fence where id = #{id} + + + + delete from base_electronic_fence where id in + + #{id} + + + \ No newline at end of file diff --git a/ruoyi-basetyre/src/main/resources/mapper/basetyre/BaseFireSetRecordMapper.xml b/ruoyi-basetyre/src/main/resources/mapper/basetyre/BaseFireSetRecordMapper.xml index f512cdf..23f3479 100644 --- a/ruoyi-basetyre/src/main/resources/mapper/basetyre/BaseFireSetRecordMapper.xml +++ b/ruoyi-basetyre/src/main/resources/mapper/basetyre/BaseFireSetRecordMapper.xml @@ -37,7 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - SELECT top 1 * FROM [dbo].[base_fire_set_record] where car_id = #{carId} ORDER BY create_time desc diff --git a/ruoyi-basetyre/src/main/resources/mapper/basetyre/BaseTyreHistoricalRecordsMapper.xml b/ruoyi-basetyre/src/main/resources/mapper/basetyre/BaseTyreHistoricalRecordsMapper.xml index 0e18045..94ed43d 100644 --- a/ruoyi-basetyre/src/main/resources/mapper/basetyre/BaseTyreHistoricalRecordsMapper.xml +++ b/ruoyi-basetyre/src/main/resources/mapper/basetyre/BaseTyreHistoricalRecordsMapper.xml @@ -61,7 +61,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" SELECT bthr.car_online_mileage AS course, bthr.texture_depth AS textureDepth, - bthr.create_time AS TIME + bthr.create_time AS createTime FROM base_tyre_historical_records bthr LEFT JOIN base_tyre bt ON bt.id= bthr.tyre_id @@ -83,6 +83,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" car_license, type, texture_depth, + car_online_mileage, create_time, @@ -94,6 +95,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{carLicense}, #{type}, #{textureDepth}, + #{textureDepth}, #{createTime}, diff --git a/ruoyi-basetyre/src/main/resources/mapper/basetyre/BaseTyreMapper.xml b/ruoyi-basetyre/src/main/resources/mapper/basetyre/BaseTyreMapper.xml index 43dc6b7..8b52bbf 100644 --- a/ruoyi-basetyre/src/main/resources/mapper/basetyre/BaseTyreMapper.xml +++ b/ruoyi-basetyre/src/main/resources/mapper/basetyre/BaseTyreMapper.xml @@ -54,14 +54,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + - select id, tyre_factory, outer_tire_number, material_code, material_name, quality_status, unit, material_type, material_group, product_group, brand, category, size, pattern, cons_pattern, hierarchy, speed_level, load_index, rim_size, weight, section_width, outer_diameter, flattening, enhanced, inner_tube, pattern_depth, ctn, type, cert_info, customs_spe, fe_code, fe_desc, produce_factory, car_id, car_license, tyre_position, sensor_id, current_texture_depth, state, is_delete, create_time, create_id, create_by, create_name, modify_time, modify_id, modify_by, modify__name, remark from base_tyre + select id, tyre_factory, outer_tire_number, material_code, material_name, quality_status, unit, material_type, material_group, product_group, brand, category, size, pattern, cons_pattern, hierarchy, speed_level, load_index, rim_size, weight, section_width, outer_diameter, flattening, enhanced, inner_tube, pattern_depth, ctn, type, cert_info, customs_spe, fe_code, fe_desc, produce_factory, car_id, car_license, tyre_position, sensor_id, current_texture_depth, state, is_delete, bt.create_time, bt.create_id, bt.create_by, bt.create_name, bt.modify_time, bt.modify_id, bt.modify_by, bt.modify__name, bt.remark,company_code from base_tyre bt diff --git a/ruoyi-basetyre/src/main/resources/mapper/basetyre/CollectMachineGpsMapper.xml b/ruoyi-basetyre/src/main/resources/mapper/basetyre/CollectMachineGpsMapper.xml index b2a7751..71d2800 100644 --- a/ruoyi-basetyre/src/main/resources/mapper/basetyre/CollectMachineGpsMapper.xml +++ b/ruoyi-basetyre/src/main/resources/mapper/basetyre/CollectMachineGpsMapper.xml @@ -63,7 +63,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and d_l_isencryption = #{dLIsencryption} and speed = #{speed} and course = #{course} - and createtime = #{createTime} + and createtime BETWEEN #{params.beginTime} AND #{params.endTime} and gps_intensity = #{gpsIntensity} and gps_satellites = #{gpsSatellites} and gps_mileage = #{gpsMileage} diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index 0ba11fa..bcb8af1 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -154,6 +154,11 @@ 4.3.5 + + org.springframework.boot + spring-boot-starter-websocket + + diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/websocket/SemaphoreUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/websocket/SemaphoreUtils.java similarity index 96% rename from ruoyi-framework/src/main/java/com/ruoyi/framework/websocket/SemaphoreUtils.java rename to ruoyi-common/src/main/java/com/ruoyi/common/websocket/SemaphoreUtils.java index 57567f3..e7e382f 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/websocket/SemaphoreUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/websocket/SemaphoreUtils.java @@ -1,9 +1,10 @@ -package com.ruoyi.framework.websocket; +package com.ruoyi.common.websocket; -import java.util.concurrent.Semaphore; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.concurrent.Semaphore; + /** * 信号量相关处理 * diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/websocket/WebSocketClient.java b/ruoyi-common/src/main/java/com/ruoyi/common/websocket/WebSocketClient.java new file mode 100644 index 0000000..0ecb8db --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/websocket/WebSocketClient.java @@ -0,0 +1,28 @@ +package com.ruoyi.common.websocket; + +import javax.websocket.Session; + +public class WebSocketClient { + // 与某个客户端的连接会话,需要通过它来给客户端发送数据 + private Session session; + + //连接的uri + private String uri; + + public Session getSession() { + return session; + } + + public void setSession(Session session) { + this.session = session; + } + + public String getUri() { + return uri; + } + + public void setUri(String uri) { + this.uri = uri; + } + +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/websocket/WebSocketConfig.java b/ruoyi-common/src/main/java/com/ruoyi/common/websocket/WebSocketConfig.java new file mode 100644 index 0000000..7c5932b --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/websocket/WebSocketConfig.java @@ -0,0 +1,20 @@ +package com.ruoyi.common.websocket; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.socket.server.standard.ServerEndpointExporter; + +/** + * websocket 配置 + * + * @author ruoyi + */ +@Configuration +public class WebSocketConfig +{ + @Bean + public ServerEndpointExporter serverEndpointExporter() + { + return new ServerEndpointExporter(); + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/websocket/WebSocketServer.java b/ruoyi-common/src/main/java/com/ruoyi/common/websocket/WebSocketServer.java similarity index 61% rename from ruoyi-framework/src/main/java/com/ruoyi/framework/websocket/WebSocketServer.java rename to ruoyi-common/src/main/java/com/ruoyi/common/websocket/WebSocketServer.java index ba2ad28..183dc12 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/websocket/WebSocketServer.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/websocket/WebSocketServer.java @@ -1,16 +1,20 @@ -package com.ruoyi.framework.websocket; +package com.ruoyi.common.websocket; -import java.util.ArrayList; -import java.util.List; +import java.io.IOException; +import java.util.Iterator; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.Semaphore; import javax.websocket.OnClose; import javax.websocket.OnError; import javax.websocket.OnMessage; import javax.websocket.OnOpen; import javax.websocket.Session; +import javax.websocket.server.PathParam; import javax.websocket.server.ServerEndpoint; -import io.netty.buffer.ByteBuf; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.utils.SecurityUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; @@ -21,7 +25,7 @@ import org.springframework.stereotype.Component; * @author ruoyi */ @Component -@ServerEndpoint("/websocket/message") +@ServerEndpoint("/websocket/message/{userName}") public class WebSocketServer { /** @@ -35,13 +39,22 @@ public class WebSocketServer public static int socketMaxOnlineCount = 100; private static Semaphore socketSemaphore = new Semaphore(socketMaxOnlineCount); + private static ConcurrentHashMap webSocketMap = new ConcurrentHashMap<>(); + /**与某个客户端的连接会话,需要通过它来给客户端发送数据*/ + private Session session; + /**接收userName*/ + private String userName=""; /** * 连接建立成功调用的方法 */ @OnOpen - public void onOpen(Session session) throws Exception + public void onOpen(@PathParam("userName") String userName, Session session) throws Exception { + //获取登陆用户信息 + //USER_SESSIONS.put(loginUser.getUserId().toString(),session); +// this.session = session; +// websockets.put(id, this); //将ID作为key,当前的对象作为Value boolean semaphoreFlag = false; // 尝试获取信号量 semaphoreFlag = SemaphoreUtils.tryAcquire(socketSemaphore); @@ -56,9 +69,17 @@ public class WebSocketServer { // 添加用户 WebSocketUsers.put(session.getId(), session); + + this.session = session; + this.userName= userName; + WebSocketClient client = new WebSocketClient(); + client.setSession(session); + client.setUri(session.getRequestURI().toString()); + webSocketMap.put(userName, client); + LOGGER.info("\n 建立连接 - {}", session); LOGGER.info("\n 当前人数 - {}", WebSocketUsers.getUsers().size()); - WebSocketUsers.sendMessageToUserByText(session, "连接成功"); + WebSocketUsers.sendMessageToUserByText(session, "连接成功session:"+session); } } @@ -104,5 +125,21 @@ public class WebSocketServer String msg = message.replace("你", "我").replace("吗", ""); WebSocketUsers.sendMessageToUserByText(session, msg); } + /** + * 向指定客户端发送消息 + * @param userName + * @param message + */ + public static void sendMessage(String userName,String message){ + try { + WebSocketClient webSocketClient = webSocketMap.get(userName); + if(webSocketClient!=null){ + webSocketClient.getSession().getBasicRemote().sendText(message); + } + } catch (IOException e) { + e.printStackTrace(); + throw new RuntimeException(e.getMessage()); + } + } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/websocket/WebSocketUsers.java b/ruoyi-common/src/main/java/com/ruoyi/common/websocket/WebSocketUsers.java similarity index 86% rename from ruoyi-framework/src/main/java/com/ruoyi/framework/websocket/WebSocketUsers.java rename to ruoyi-common/src/main/java/com/ruoyi/common/websocket/WebSocketUsers.java index 81e549e..b6f2ecd 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/websocket/WebSocketUsers.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/websocket/WebSocketUsers.java @@ -1,13 +1,15 @@ -package com.ruoyi.framework.websocket; +package com.ruoyi.common.websocket; import java.io.IOException; import java.util.Collection; +import java.util.Iterator; import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import javax.websocket.Session; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.web.socket.client.WebSocketClient; /** * websocket 客户端用户集 @@ -116,7 +118,7 @@ public class WebSocketUsers /** * 发送文本消息 * - * @param userName 自己的用户名 + * @param session 自己的用户名 * @param message 消息内容 */ public static void sendMessageToUserByText(Session session, String message) @@ -137,4 +139,17 @@ public class WebSocketUsers LOGGER.info("\n[你已离线]"); } } + + +// public void sendMessage(String message, String userId){ +// try { +// if (USERS.get(userId)!=null){ +// +// } +// +// }catch (Exception e){ +// e.printStackTrace(); +// throw new RuntimeException(e.getMessage()); +// } +// } } diff --git a/ruoyi-framework/pom.xml b/ruoyi-framework/pom.xml index 9a81f39..82af743 100644 --- a/ruoyi-framework/pom.xml +++ b/ruoyi-framework/pom.xml @@ -60,10 +60,7 @@ ruoyi-system - - org.springframework.boot - spring-boot-starter-websocket - + com.ruoyi ruoyi-basetyre diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java index ec95137..c83906f 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java @@ -111,7 +111,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter // 过滤请求 .authorizeRequests() // 对于登录login 注册register 验证码captchaImage 允许匿名访问 - .antMatchers("/login", "/register", "/captchaImage","/system/language/change","/websocket/**").permitAll() + .antMatchers("/login", "/register", "/captchaImage","/system/language/change","/websocket/**","/basetyre/tyre/TyreWarring").permitAll() // 静态资源,可匿名访问 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll() .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll() diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java index 192d9be..8fdf4e8 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java @@ -1,6 +1,8 @@ package com.ruoyi.framework.web.service; import javax.annotation.Resource; +import javax.websocket.Session; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.MessageSource; import org.springframework.context.i18n.LocaleContextHolder; @@ -29,6 +31,9 @@ import com.ruoyi.framework.security.context.AuthenticationContextHolder; import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.ISysUserService; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + /** * 登录校验方法 * @@ -54,6 +59,7 @@ public class SysLoginService @Autowired private MessageSource messageSource; + /** * 登录验证 * diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/websocket/WebSocketConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/websocket/WebSocketConfig.java deleted file mode 100644 index 7442ef3..0000000 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/websocket/WebSocketConfig.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.ruoyi.framework.websocket; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.socket.server.standard.ServerEndpointExporter; - -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.net.ServerSocket; -import java.net.Socket; -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; - -/** - * websocket 配置 - * - * @author ruoyi - */ -@Configuration -public class WebSocketConfig -{ - - - @Bean - public ServerEndpointExporter serverEndpointExporter() - { - return new ServerEndpointExporter(); - } -// @Bean -// public EchoSocketServer echoSocketServer(){ -// return new EchoSocketServer(8691); -// } - - - -} diff --git a/ruoyi-ui/.env.production b/ruoyi-ui/.env.production index e0cb11f..5875ff4 100644 --- a/ruoyi-ui/.env.production +++ b/ruoyi-ui/.env.production @@ -6,6 +6,6 @@ VITE_APP_ENV = 'production' # 若依管理系统/生产环境 #VITE_APP_BASE_API = 'http://10.11.41.249:8080/dev-api' -VITE_APP_BASE_API = 'http://47.94.93.46:80/dev-api' +VITE_APP_BASE_API = 'https://ticptest.tercelo.com/dev-api' # 是否在打包时开启压缩,支持 gzip 和 brotli VITE_BUILD_COMPRESS = gzip \ No newline at end of file diff --git a/ruoyi-ui/src/api/report/report.js b/ruoyi-ui/src/api/report/report.js index ff0836c..f5d6efa 100644 --- a/ruoyi-ui/src/api/report/report.js +++ b/ruoyi-ui/src/api/report/report.js @@ -7,4 +7,12 @@ export function getTempdata(query) { method: 'get', params: query }) +} +// 首页看板 +export function getIndexdata(query) { + return request({ + url: '/report/indexreport', + method: 'post', + params: query + }) } \ No newline at end of file diff --git a/ruoyi-ui/src/layout/components/TagsView/index.vue b/ruoyi-ui/src/layout/components/TagsView/index.vue index 385b1d1..c6bf940 100644 --- a/ruoyi-ui/src/layout/components/TagsView/index.vue +++ b/ruoyi-ui/src/layout/components/TagsView/index.vue @@ -45,6 +45,7 @@ + diff --git a/ruoyi-ui/src/views/tireManagement/info/index.vue b/ruoyi-ui/src/views/tireManagement/info/index.vue index 1a5eaf1..af25afc 100644 --- a/ruoyi-ui/src/views/tireManagement/info/index.vue +++ b/ruoyi-ui/src/views/tireManagement/info/index.vue @@ -141,6 +141,7 @@ +