From d6ec98eab9d315012d269ca55a8563f7c021e029 Mon Sep 17 00:00:00 2001 From: mashili Date: Thu, 10 Jul 2025 17:47:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E7=AE=A1=E7=90=86=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ems/EmsAlarmRecordsController.java | 21 +++++++ .../controller/ems/EmsTicketController.java | 11 ++++ .../com/xzzn/ems/domain/EmsAlarmRecords.java | 13 ++++ .../java/com/xzzn/ems/domain/EmsTicket.java | 13 ++++ .../domain/vo/AlarmRecordListResponseVo.java | 22 +++++++ .../ems/domain/vo/SiteMonitorHomeAlarmVo.java | 24 ++++++++ .../com/xzzn/ems/mapper/EmsTicketMapper.java | 7 +++ .../ems/service/IEmsAlarmRecordsService.java | 9 +++ .../xzzn/ems/service/IEmsTicketService.java | 7 +++ .../impl/EmsAlarmRecordsServiceImpl.java | 61 +++++++++++++++++++ .../service/impl/EmsTicketServiceImpl.java | 12 ++++ .../mapper/ems/EmsAlarmRecordsMapper.xml | 16 ++++- .../resources/mapper/ems/EmsTicketMapper.xml | 12 +++- 13 files changed, 224 insertions(+), 4 deletions(-) diff --git a/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsAlarmRecordsController.java b/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsAlarmRecordsController.java index 0caa8bc..e3fc301 100644 --- a/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsAlarmRecordsController.java +++ b/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsAlarmRecordsController.java @@ -1,7 +1,10 @@ package com.xzzn.web.controller.ems; import com.xzzn.common.core.controller.BaseController; +import com.xzzn.common.core.domain.AjaxResult; import com.xzzn.common.core.page.TableDataInfo; +import com.xzzn.common.utils.StringUtils; +import com.xzzn.ems.domain.EmsAlarmRecords; import com.xzzn.ems.domain.vo.AlarmRecordListRequestVo; import com.xzzn.ems.domain.vo.AlarmRecordListResponseVo; import com.xzzn.ems.service.IEmsAlarmRecordsService; @@ -34,4 +37,22 @@ public class EmsAlarmRecordsController extends BaseController return getDataTable(list); } + /** + * 生成工单 + */ + @PostMapping("/createTicketNo") + public AjaxResult createTicketNo(@RequestBody EmsAlarmRecords emsAlarmRecords) + { + Long id = emsAlarmRecords.getId(); + if (id == null) { + return error("告警id不能为空"); + } + String ticketNo= iEmsAlarmRecordsService.createTicketNo(id,getUserId()); + if (StringUtils.isNotEmpty(ticketNo) && ticketNo.contains("T")) { + return AjaxResult.success("操作成功", ticketNo); + } else { + return error(ticketNo); + } + } + } diff --git a/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsTicketController.java b/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsTicketController.java index 38e393d..1970124 100644 --- a/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsTicketController.java +++ b/ems-admin/src/main/java/com/xzzn/web/controller/ems/EmsTicketController.java @@ -102,4 +102,15 @@ public class EmsTicketController extends BaseController { return toAjax(emsTicketService.deleteEmsTicketByIds(ids)); } + + /** + * 废弃工单 + */ + @PreAuthorize("@ss.hasPermi('system:ticket:delete')") + @Log(title = "工单主", businessType = BusinessType.DELETE) + @PostMapping("/drop") + public AjaxResult drop(@RequestBody EmsTicket emsTicket) + { + return toAjax(emsTicketService.dropEmsTicketById(emsTicket.getId())); + } } diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/EmsAlarmRecords.java b/ems-system/src/main/java/com/xzzn/ems/domain/EmsAlarmRecords.java index fe5cb52..258d3b5 100644 --- a/ems-system/src/main/java/com/xzzn/ems/domain/EmsAlarmRecords.java +++ b/ems-system/src/main/java/com/xzzn/ems/domain/EmsAlarmRecords.java @@ -58,6 +58,10 @@ public class EmsAlarmRecords extends BaseEntity @Excel(name = "设备名称,用于标识设备") private String deviceName; + /** 工单号(规则:T+日期+6位随机) */ + @Excel(name = "工单号", readConverterExp = "规=则:T+日期+6位随机") + private String ticketNo; + public void setId(Long id) { this.id = id; @@ -158,6 +162,14 @@ public class EmsAlarmRecords extends BaseEntity return deviceName; } + public String getTicketNo() { + return ticketNo; + } + + public void setTicketNo(String ticketNo) { + this.ticketNo = ticketNo; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) @@ -176,6 +188,7 @@ public class EmsAlarmRecords extends BaseEntity .append("siteId", getSiteId()) .append("deviceId", getDeviceId()) .append("deviceName", getDeviceName()) + .append("ticketNo", getTicketNo()) .toString(); } } diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/EmsTicket.java b/ems-system/src/main/java/com/xzzn/ems/domain/EmsTicket.java index bcd31ce..da19310 100644 --- a/ems-system/src/main/java/com/xzzn/ems/domain/EmsTicket.java +++ b/ems-system/src/main/java/com/xzzn/ems/domain/EmsTicket.java @@ -53,6 +53,10 @@ public class EmsTicket extends BaseEntity @Excel(name = "处理人ID") private Long workUserId; + /** 0-已废弃 1-有效 */ + @Excel(name = "0-已废弃 1-有效") + private Long isDelete; + public void setId(String id) { this.id = id; @@ -143,6 +147,14 @@ public class EmsTicket extends BaseEntity return workUserId; } + public Long getIsDelete() { + return isDelete; + } + + public void setIsDelete(Long isDelete) { + this.isDelete = isDelete; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) @@ -159,6 +171,7 @@ public class EmsTicket extends BaseEntity .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) .append("workUserId", getWorkUserId()) + .append("isDelete", getIsDelete()) .toString(); } } diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/AlarmRecordListResponseVo.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/AlarmRecordListResponseVo.java index 42137b8..6aa4203 100644 --- a/ems-system/src/main/java/com/xzzn/ems/domain/vo/AlarmRecordListResponseVo.java +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/AlarmRecordListResponseVo.java @@ -28,6 +28,12 @@ public class AlarmRecordListResponseVo { /** 状态 */ private String status; + /** 工单号 */ + private String ticketNo; + + /** 告警唯一标识 */ + private String id; + public String getDeviceName() { return deviceName; } @@ -75,4 +81,20 @@ public class AlarmRecordListResponseVo { public void setStatus(String status) { this.status = status; } + + public String getTicketNo() { + return ticketNo; + } + + public void setTicketNo(String ticketNo) { + this.ticketNo = ticketNo; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } } diff --git a/ems-system/src/main/java/com/xzzn/ems/domain/vo/SiteMonitorHomeAlarmVo.java b/ems-system/src/main/java/com/xzzn/ems/domain/vo/SiteMonitorHomeAlarmVo.java index f8f29e3..87722c7 100644 --- a/ems-system/src/main/java/com/xzzn/ems/domain/vo/SiteMonitorHomeAlarmVo.java +++ b/ems-system/src/main/java/com/xzzn/ems/domain/vo/SiteMonitorHomeAlarmVo.java @@ -20,6 +20,14 @@ public class SiteMonitorHomeAlarmVo { */ private String alarmContent; + /** + * 工单号 + */ + private String ticketNo; + + /** 告警唯一标识 */ + private String id; + public String getDeviceName() { return deviceName; } @@ -43,4 +51,20 @@ public class SiteMonitorHomeAlarmVo { public void setStatus(int status) { this.status = status; } + + public String getTicketNo() { + return ticketNo; + } + + public void setTicketNo(String ticketNo) { + this.ticketNo = ticketNo; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } } diff --git a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsTicketMapper.java b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsTicketMapper.java index e29578a..f944a4c 100644 --- a/ems-system/src/main/java/com/xzzn/ems/mapper/EmsTicketMapper.java +++ b/ems-system/src/main/java/com/xzzn/ems/mapper/EmsTicketMapper.java @@ -59,4 +59,11 @@ public interface EmsTicketMapper * @return 结果 */ public int deleteEmsTicketByIds(String[] ids); + + /** + * 废弃工单-isDelete=0 + * @param id + * @return + */ + public int dropEmsTicketById(String id); } diff --git a/ems-system/src/main/java/com/xzzn/ems/service/IEmsAlarmRecordsService.java b/ems-system/src/main/java/com/xzzn/ems/service/IEmsAlarmRecordsService.java index ba58188..2a29700 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/IEmsAlarmRecordsService.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/IEmsAlarmRecordsService.java @@ -67,4 +67,13 @@ public interface IEmsAlarmRecordsService * @return */ public List getAlarmRecordDetailList(AlarmRecordListRequestVo requestVo); + + /** + * 生产工单号 + * + * @param id + * @param userId + * @return + */ + public String createTicketNo(Long id, Long userId); } diff --git a/ems-system/src/main/java/com/xzzn/ems/service/IEmsTicketService.java b/ems-system/src/main/java/com/xzzn/ems/service/IEmsTicketService.java index 069b94c..7fe9993 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/IEmsTicketService.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/IEmsTicketService.java @@ -59,4 +59,11 @@ public interface IEmsTicketService * @return 结果 */ public int deleteEmsTicketById(String id); + + /** + * 废弃工单-物理删除 + * @param id + * @return + */ + public int dropEmsTicketById(String id); } diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsAlarmRecordsServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsAlarmRecordsServiceImpl.java index d4c545b..18ec20e 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsAlarmRecordsServiceImpl.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsAlarmRecordsServiceImpl.java @@ -1,9 +1,18 @@ package com.xzzn.ems.service.impl; import java.util.List; +import java.util.Random; + +import com.xzzn.common.core.domain.entity.SysUser; +import com.xzzn.common.core.domain.model.LoginUser; import com.xzzn.common.utils.DateUtils; +import com.xzzn.common.utils.StringUtils; +import com.xzzn.ems.domain.EmsTicket; import com.xzzn.ems.domain.vo.AlarmRecordListRequestVo; import com.xzzn.ems.domain.vo.AlarmRecordListResponseVo; +import com.xzzn.ems.mapper.EmsTicketMapper; +import com.xzzn.ems.service.IEmsTicketService; +import com.xzzn.system.mapper.SysUserMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.xzzn.ems.mapper.EmsAlarmRecordsMapper; @@ -21,6 +30,12 @@ public class EmsAlarmRecordsServiceImpl implements IEmsAlarmRecordsService { @Autowired private EmsAlarmRecordsMapper emsAlarmRecordsMapper; + @Autowired + private IEmsTicketService emsTicketService; + @Autowired + private EmsTicketMapper emsTicketMapper; + @Autowired + private SysUserMapper sysUserMapper; /** * 查询告警记录 @@ -100,4 +115,50 @@ public class EmsAlarmRecordsServiceImpl implements IEmsAlarmRecordsService public List getAlarmRecordDetailList(AlarmRecordListRequestVo requestVo) { return emsAlarmRecordsMapper.getAlarmRecordDetailList(requestVo); } + + @Override + public String createTicketNo(Long id, Long userId) { + String ticketNo = ""; + // 校验告警记录是否存在 + EmsAlarmRecords emsAlarmRecords = emsAlarmRecordsMapper.selectEmsAlarmRecordsById(id); + if (emsAlarmRecords == null) { + return "告警记录不存在"; + } + // 工单号是否存在 + if (StringUtils.isNotEmpty(emsAlarmRecords.getTicketNo())) { + return "工单号已存在"; + } + // 随机生成工单:T+日期+6位随机 + ticketNo = createRandomTicketNo(); + // 更新告警表 + emsAlarmRecords.setTicketNo(ticketNo); + emsAlarmRecordsMapper.updateEmsAlarmRecords(emsAlarmRecords); + // 不存在-默认userId + if (userId == null) { + userId = 1L; + } + SysUser user = sysUserMapper.selectUserById(userId); + // 插入工单表 + EmsTicket emsTicket = new EmsTicket(); + emsTicket.setTicketNo(ticketNo); + emsTicket.setTitle("工单"+id.toString()); + emsTicket.setContent(emsAlarmRecords.getAlarmContent()); + emsTicket.setUserId(userId.toString()); + emsTicket.setWorkUserId(userId); + emsTicket.setCreateTime(DateUtils.getNowDate()); + emsTicket.setCreateBy(user.getUserName()); + emsTicket.setUpdateTime(DateUtils.getNowDate()); + emsTicket.setUpdateBy(user.getUserName()); + emsTicketMapper.insertEmsTicket(emsTicket); + return ticketNo; + } + + private String createRandomTicketNo() { + String ticketNo = ""; + String nowDate = DateUtils.dateTime(); + ticketNo = "T" + nowDate + String.format("%06d", new Random().nextInt(1000000)); + return ticketNo; + } + + } diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsTicketServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsTicketServiceImpl.java index 83c2442..f9917ec 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsTicketServiceImpl.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/EmsTicketServiceImpl.java @@ -94,4 +94,16 @@ public class EmsTicketServiceImpl implements IEmsTicketService { return emsTicketMapper.deleteEmsTicketById(id); } + + /** + * 删除工单主信息-物理删除 + * + * @param id 工单主主键 + * @return 结果 + */ + @Override + public int dropEmsTicketById(String id) + { + return emsTicketMapper.dropEmsTicketById(id); + } } diff --git a/ems-system/src/main/resources/mapper/ems/EmsAlarmRecordsMapper.xml b/ems-system/src/main/resources/mapper/ems/EmsAlarmRecordsMapper.xml index 0c83cd3..775ab0c 100644 --- a/ems-system/src/main/resources/mapper/ems/EmsAlarmRecordsMapper.xml +++ b/ems-system/src/main/resources/mapper/ems/EmsAlarmRecordsMapper.xml @@ -20,10 +20,11 @@ + - select id, device_type, alarm_level, alarm_content, alarm_start_time, alarm_end_time, status, create_by, create_time, update_by, update_time, remark, site_id, device_id, device_name from ems_alarm_records + select id, device_type, alarm_level, alarm_content, alarm_start_time, alarm_end_time, status, create_by, create_time, update_by, update_time, remark, site_id, device_id, device_name, ticket_no from ems_alarm_records @@ -63,6 +65,7 @@ site_id, device_id, device_name, + ticket_no, #{deviceType}, @@ -79,6 +82,7 @@ #{siteId}, #{deviceId}, #{deviceName}, + #{ticketNo}, @@ -99,6 +103,7 @@ site_id = #{siteId}, device_id = #{deviceId}, device_name = #{deviceName}, + ticket_no = #{ticketNo}, where id = #{id} @@ -116,7 +121,10 @@ @@ -140,7 +148,9 @@ + isDelete = 1 and ticket_no = #{ticketNo} and user_id = #{userId} and title = #{title} @@ -41,6 +43,7 @@ @@ -58,6 +61,7 @@ update_by, update_time, work_user_id, + isDelete, #{ticketNo}, @@ -72,6 +76,7 @@ #{updateBy}, #{updateTime}, #{workUserId}, + #{isDelete}, @@ -90,6 +95,7 @@ update_by = #{updateBy}, update_time = #{updateTime}, work_user_id = #{workUserId}, + isDelete = #{isDelete}, where id = #{id} @@ -104,4 +110,8 @@ #{id} + + + update ems_ticket set isDelete = 0 where id = #{id} + \ No newline at end of file