Jelajahi Sumber

工单管理:工单详情、添加编辑工单、派发工单、设置工单状态

zhj 2 tahun lalu
induk
melakukan
e4b748817d
24 mengubah file dengan 496 tambahan dan 8 penghapusan
  1. 7 0
      src/main/java/com/welampiot/common/InterfaceResultEnum.java
  2. 191 7
      src/main/java/com/welampiot/controller/WorkManageController.java
  3. 1 0
      src/main/java/com/welampiot/dao/AllAlarmInfoLogDao.java
  4. 1 0
      src/main/java/com/welampiot/dao/UserDao.java
  5. 11 0
      src/main/java/com/welampiot/dao/WorkManageDao.java
  6. 21 0
      src/main/java/com/welampiot/dao/WorkManageDescDao.java
  7. 2 0
      src/main/java/com/welampiot/dao/WorkManageFileDao.java
  8. 27 0
      src/main/java/com/welampiot/dto/WorkManageDescDTO.java
  9. 1 0
      src/main/java/com/welampiot/service/AllAlarmInfoLogService.java
  10. 1 0
      src/main/java/com/welampiot/service/UserService.java
  11. 20 0
      src/main/java/com/welampiot/service/WorkManageDescService.java
  12. 2 0
      src/main/java/com/welampiot/service/WorkManageFileService.java
  13. 10 0
      src/main/java/com/welampiot/service/WorkManageService.java
  14. 5 0
      src/main/java/com/welampiot/service/impl/AllAlarmInfoLogServiceImpl.java
  15. 5 0
      src/main/java/com/welampiot/service/impl/UserServiceImpl.java
  16. 34 0
      src/main/java/com/welampiot/service/impl/WorkManageDescServiceImpl.java
  17. 5 0
      src/main/java/com/welampiot/service/impl/WorkManageFileServiceImpl.java
  18. 25 0
      src/main/java/com/welampiot/service/impl/WorkManageServiceImpl.java
  19. 40 0
      src/main/java/com/welampiot/vo/WorkManageInfoVO.java
  20. 8 0
      src/main/resources/mapper/AllAlarmInfoLogMapper.xml
  21. 6 0
      src/main/resources/mapper/UserMapper.xml
  22. 16 0
      src/main/resources/mapper/WorkManageDescMapper.xml
  23. 10 1
      src/main/resources/mapper/WorkManageFileMapper.xml
  24. 47 0
      src/main/resources/mapper/WorkManageMapper.xml

+ 7 - 0
src/main/java/com/welampiot/common/InterfaceResultEnum.java

@@ -97,6 +97,13 @@ public enum InterfaceResultEnum {
     WIFI_NAME_LENGTH_ERROR("0290","WiFi名字长度不能超过30位","The length of the WiFi name cannot exceed 30 characters","Длина имени WiFi не может превышать 30 бит"),
     WIFI_PWD_LENGTH_ERROR("0291","WiFi密码长度要在8~30之间","The length of the WiFi password must be between 8 and 30","Длина пароля от 8 до 30"),
     LACK_WIFI_MAC_ADDRESS_ERROR("0292","mac地址不能为空","The mac address cannot be empty","Мак-адрес не может быть пустым"),
+    LACK_ALARM_ID_ERROR("0293","故障id不能为空","The fault id cannot be empty","Аварийное опознание не должно быть пустым"),
+    LACK_DEV_TYPE_ERROR("0294","设备类型不能为空","The device type cannot be empty","Тип устройства не может быть пустым"),
+    LACK_DEV_NAME_ERROR("0295","设备名称不能为空","The device name cannot be empty","Название устройства не может быть пустым"),
+    LACK_LOCATION("0296","位置信息不能为空","The location information cannot be empty","Информация о местоположении не может быть пустой"),
+    LACK_OPEN_TIME_ERROR("0297","发生时间不能为空","The occurrence time cannot be empty","Время не может быть пустым"),
+    LACK_LEVEL_ERROR("0298","请选择严重程度","Please select Severity","Пожалуйста, выберите степень серьезности"),
+    LACK_SCRIPT_ERROR("0299","请填写工单描述","Please fill in the description of the work order","Пожалуйста, заполните список работников"),
     ;
     private String code;
     private String msgCn;

+ 191 - 7
src/main/java/com/welampiot/controller/WorkManageController.java

@@ -4,15 +4,12 @@ import com.welampiot.common.BaseResult;
 import com.welampiot.common.InterfaceResultEnum;
 import com.welampiot.dto.AllAlarmInfoLogDTO;
 import com.welampiot.dto.WorkManageDTO;
+import com.welampiot.dto.WorkManageDescDTO;
 import com.welampiot.dto.WorkManageFileDTO;
-import com.welampiot.service.AllAlarmInfoLogService;
-import com.welampiot.service.RepairPersonnelService;
-import com.welampiot.service.WorkManageFileService;
-import com.welampiot.service.WorkManageService;
+import com.welampiot.service.*;
 import com.welampiot.utils.ToolUtils;
-import com.welampiot.vo.AllAlarmInfoLogVO;
-import com.welampiot.vo.RepairPersonnelVO;
-import com.welampiot.vo.WorkManageVO;
+import com.welampiot.vo.*;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.CrossOrigin;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -20,6 +17,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
@@ -52,6 +50,12 @@ public class WorkManageController {
     @Autowired
     private WorkManageFileService workManageFileService;
 
+    @Autowired
+    private WorkManageDescService workManageDescService;
+
+    @Autowired
+    private UserService userService;
+
     /**
      * 故障列表
      * @param request 分页、区域路段筛选、故障类型、设备类型
@@ -206,4 +210,184 @@ public class WorkManageController {
         workManageVO.setTotal6(workManageService.getWorkManageTotal6(vo));
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,workManageVO);
     }
+
+    /**
+     * 工单详情
+     * @param request 工单id
+     * @return 工单详情
+     */
+    @RequestMapping(value = "/workManageInfo", method = RequestMethod.POST)
+    public BaseResult<?> workManageInfo(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer id = (Integer) toolUtils.getRequestContent(request,"id",1);
+        if (id == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        WorkManageDTO workManageDTO = workManageService.getWorkManageInfoById(id);
+        if (workManageDTO == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
+        WorkManageInfoVO workManageInfoVO = new WorkManageInfoVO();
+        BeanUtils.copyProperties(workManageDTO,workManageInfoVO);
+        List<WorkManageFileDTO> fileList = workManageFileService.getWorkManageFileListById(workManageDTO.getId());
+        List<WorkManageDescDTO> descList = workManageDescService.getWorkManageDescDetails(workManageDTO.getId());
+        workManageInfoVO.setFileList(fileList);
+        workManageInfoVO.setHistory(descList);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,workManageInfoVO);
+    }
+
+    /**
+     * 添加编辑工单
+     * @param request 工单的属性
+     * @return 更新工单数据
+     */
+    @RequestMapping(value = "/saveWorkManage", method = RequestMethod.POST)
+    public BaseResult<?> saveWorkManage(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer id = (Integer) toolUtils.getRequestContent(request,"id",1);
+        Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1);
+        Integer alarmId = (Integer) toolUtils.getRequestContent(request,"alarmId",1);
+        Integer devType = (Integer) toolUtils.getRequestContent(request,"devType",1);
+        Integer level = (Integer) toolUtils.getRequestContent(request,"level",1);
+        String openTime = (String) toolUtils.getRequestContent(request,"openTime",2);
+        String location = (String) toolUtils.getRequestContent(request,"location",2);
+        String devName = (String) toolUtils.getRequestContent(request,"devName",2);
+        String script = (String) toolUtils.getRequestContent(request,"script",2);
+        String longitude = (String) toolUtils.getRequestContent(request,"longitude",2);
+        String latitude = (String) toolUtils.getRequestContent(request,"latitude",2);
+        String username = (String) toolUtils.getRequestContent(request,"username",2);
+
+        if (sectionId == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_SECTION_ERROR,version);
+        if (alarmId == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_ALARM_ID_ERROR,version);
+        if (String.valueOf(devType).length() == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_LOOP_DEV_TYPE_ERROR,version);
+        if (String.valueOf(level).length() == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_LEVEL_ERROR,version);
+        if (openTime.length() == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_OPEN_TIME_ERROR,version);
+        if (location.length() == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_LOCATION_ERROR,version);
+        if (devName.length() == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_DEV_NAME_ERROR,version);
+        if (script.length() == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_SCRIPT_ERROR,version);
+        if (longitude.length() == 0 || latitude.length() == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_LOCATION_ERROR,version);
+        WorkManageDTO workManageDTO = new WorkManageDTO();
+        workManageDTO.setSectionId(sectionId);
+        workManageDTO.setAlarmId(alarmId);
+        workManageDTO.setDevType(devType);
+        workManageDTO.setLevel(level);
+        workManageDTO.setOpenTime(openTime);
+        workManageDTO.setLocation(location);
+        workManageDTO.setDevName(devName);
+        workManageDTO.setScript(script);
+        workManageDTO.setLongitude(longitude);
+        workManageDTO.setLatitude(latitude);
+        if (id == 0) { // 添加
+            long l = System.currentTimeMillis();
+            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            workManageDTO.setCreateTime(simpleDateFormat.format(l));
+            Integer userId = repairPersonnelService.getUserIdByUsername(username);
+            workManageDTO.setUserid(userId);
+            workManageService.addWorkManageData(workManageDTO);
+        } else { // 编辑
+            workManageDTO.setId(id);
+            workManageService.updateWorkManageData(workManageDTO);
+            Integer fileId = (Integer) toolUtils.getRequestContent(request,"fileId",1);
+            String name = (String) toolUtils.getRequestContent(request,"name",2);
+            String url = (String) toolUtils.getRequestContent(request,"url",2);
+            if (fileId == 0 || name.length() == 0 || url.length() == 0)
+                return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+            WorkManageFileDTO workManageFileDTO = new WorkManageFileDTO();
+            workManageFileDTO.setId(fileId);
+            workManageFileDTO.setWorkManageId(id);
+            workManageFileDTO.setName(name);
+            workManageFileDTO.setUrl(url);
+            workManageFileService.updateWorkManageFile(workManageFileDTO);
+        }
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
+
+    /**
+     * 派发工单
+     * @param request 工单id,维修人员id
+     * @return 派发工单
+     */
+    @RequestMapping(value = "/distributeWork", method = RequestMethod.POST)
+    public BaseResult<?> distributeWork(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer id = (Integer) toolUtils.getRequestContent(request,"id",1);
+        Integer workId = (Integer) toolUtils.getRequestContent(request,"workId",1);
+        if (id == 0 || workId == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        // 更新工单状态status为1(处理中)
+        WorkManageDTO workManageDTO = new WorkManageDTO();
+        workManageDTO.setId(id);
+        workManageDTO.setStatus(1);
+        workManageService.updateWorkStatus(workManageDTO);
+        // 获取对应的故障id,并对应更新它的状态为处理中
+        WorkManageDTO dto = workManageService.getAlarmIdAndUseridById(id);
+        AllAlarmInfoLogDTO allAlarmInfoLogDTO = new AllAlarmInfoLogDTO();
+        allAlarmInfoLogDTO.setId(dto.getAlarmId());
+        allAlarmInfoLogDTO.setStatus(1);
+        allAlarmInfoLogService.updateAlarmStatus(allAlarmInfoLogDTO);
+        //记录工单的描述信息
+        long l = System.currentTimeMillis();
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String format = simpleDateFormat.format(l);
+        String name = userService.getNameByUserid(dto.getUserid());
+        RepairPersonnelDetailsVO detailsVO = repairPersonnelService.getDetailsByRepairPersonnelDTO(workId);
+        if (detailsVO == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
+        WorkManageDescDTO workManageDescDTO = new WorkManageDescDTO();
+        workManageDescDTO.setWorkManageId(id);
+        workManageDescDTO.setDescribe(name + " 派发工单-> " + detailsVO.getName());
+        workManageDescDTO.setCreateTime(format);
+        workManageDescService.addWorkManageDescData(workManageDescDTO);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
+
+    /**
+     * 设置工单状态
+     * @param request 工单id,工单状态
+     * @return 修改工单状态,记录工单信息
+     */
+    @RequestMapping(value = "/setWorkManageStatus", method = RequestMethod.POST)
+    public BaseResult<?> setWorkManageStatus(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer id = (Integer) toolUtils.getRequestContent(request,"id",1);
+        Integer status = (Integer) toolUtils.getRequestContent(request,"status",1);
+        if (id == 0 || status == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        // 更新工单状态
+        WorkManageDTO workManageDTO = new WorkManageDTO();
+        workManageDTO.setId(id);
+        workManageDTO.setStatus(status);
+        workManageService.updateWorkStatus(workManageDTO);
+        // 如果status为3获取对应的故障id,并对应更新它的状态为已完成
+        WorkManageDTO dto = workManageService.getAlarmIdAndUseridById(id);
+        if (status == 3) {
+            AllAlarmInfoLogDTO allAlarmInfoLogDTO = new AllAlarmInfoLogDTO();
+            allAlarmInfoLogDTO.setId(dto.getAlarmId());
+            allAlarmInfoLogDTO.setStatus(2);
+            allAlarmInfoLogService.updateAlarmStatus(allAlarmInfoLogDTO);
+        }
+        //记录工单的描述信息
+        long l = System.currentTimeMillis();
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String format = simpleDateFormat.format(l);
+        String name = userService.getNameByUserid(dto.getUserid());
+        WorkManageDescDTO workManageDescDTO = new WorkManageDescDTO();
+        workManageDescDTO.setWorkManageId(id);
+        if (status == 4) {
+            workManageDescDTO.setDescribe(name + " 归档");
+        } else if (status == 3) {
+            workManageDescDTO.setDescribe(name + " 复核通过,已经结案");
+        } else if (status == 2) {
+            workManageDescDTO.setDescribe(name + " 标记处理,进入复核状态");
+        } else if (status == 1) {
+            workManageDescDTO.setDescribe(name + " 复核不通过,重新进入未处理");
+        }
+        workManageDescDTO.setCreateTime(format);
+        workManageDescService.addWorkManageDescData(workManageDescDTO);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
 }

+ 1 - 0
src/main/java/com/welampiot/dao/AllAlarmInfoLogDao.java

@@ -19,4 +19,5 @@ public interface AllAlarmInfoLogDao {
     List<AllAlarmInfoLogDTO> getLampPoleAlarmListByVO(AllAlarmInfoLogVO vo);
     List<AllAlarmInfoLogDTO> getWaterImmersionAlarmListByVO(AllAlarmInfoLogVO vo);
     List<AllAlarmInfoLogDTO> getElectricBoxAlarmListByVO(AllAlarmInfoLogVO vo);
+    void updateAlarmStatus(AllAlarmInfoLogDTO dto);
 }

+ 1 - 0
src/main/java/com/welampiot/dao/UserDao.java

@@ -24,4 +24,5 @@ public interface UserDao {
     List<UserDTO> getUserListByUserDTO(UserDTO dto);
     UserDTO queryUserIdByUsername(@Param("username") String username);
     List<UserDTO> getAllUserListByUserDTO(UserDTO dto);
+    String getNameByUserid(@Param("id") Integer id);
 }

+ 11 - 0
src/main/java/com/welampiot/dao/WorkManageDao.java

@@ -2,6 +2,7 @@ package com.welampiot.dao;
 
 import com.welampiot.dto.WorkManageDTO;
 import com.welampiot.vo.WorkManageVO;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -28,4 +29,14 @@ public interface WorkManageDao {
     Integer getWorkManageTotal5(WorkManageVO vo);
 
     Integer getWorkManageTotal6(WorkManageVO vo);
+
+    WorkManageDTO getWorkManageInfoById(@Param("id") Integer id);
+
+    void addWorkManageData(WorkManageDTO dto);
+
+    void updateWorkManageData(WorkManageDTO dto);
+
+    void updateWorkStatus(WorkManageDTO dto);
+
+    WorkManageDTO getAlarmIdAndUseridById(@Param("id") Integer id);
 }

+ 21 - 0
src/main/java/com/welampiot/dao/WorkManageDescDao.java

@@ -0,0 +1,21 @@
+package com.welampiot.dao;
+
+import com.welampiot.dto.WorkManageDescDTO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * ClassName: WorkManageDescDao
+ * Package: com.welampiot.dao
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/6/28 - 9:26
+ * @Version: v1.0
+ */
+public interface WorkManageDescDao {
+    List<WorkManageDescDTO> getWorkManageDescDetails(@Param("id") Integer id);
+
+    void addWorkManageDescData(WorkManageDescDTO dto);
+}

+ 2 - 0
src/main/java/com/welampiot/dao/WorkManageFileDao.java

@@ -16,4 +16,6 @@ import java.util.List;
  */
 public interface WorkManageFileDao {
     List<WorkManageFileDTO> getWorkManageFileListById(@Param("id") Integer id);
+
+    void updateWorkManageFile(WorkManageFileDTO dto);
 }

+ 27 - 0
src/main/java/com/welampiot/dto/WorkManageDescDTO.java

@@ -0,0 +1,27 @@
+package com.welampiot.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * ClassName: WorkManageDescDTO
+ * Package: com.welampiot.dto
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/6/28 - 9:19
+ * @Version: v1.0
+ */
+@Data
+public class WorkManageDescDTO implements Serializable {
+    private Integer id;
+
+    private Integer workManageId;
+
+    private String describe; // 流程描述
+
+    private String createTime; // 流程时间
+
+    private static final long serialVersionUID = 1L;
+}

+ 1 - 0
src/main/java/com/welampiot/service/AllAlarmInfoLogService.java

@@ -18,4 +18,5 @@ public interface AllAlarmInfoLogService {
     List<AllAlarmInfoLogDTO> getLampPoleAlarmListByVO(AllAlarmInfoLogVO vo);
     List<AllAlarmInfoLogDTO> getWaterImmersionAlarmListByVO(AllAlarmInfoLogVO vo);
     List<AllAlarmInfoLogDTO> getElectricBoxAlarmListByVO(AllAlarmInfoLogVO vo);
+    void updateAlarmStatus(AllAlarmInfoLogDTO dto);
 }

+ 1 - 0
src/main/java/com/welampiot/service/UserService.java

@@ -23,4 +23,5 @@ public interface UserService {
     List<UserDTO> getUserListByUserDTO(UserDTO dto);
     UserDTO queryUserIdByUsername(String username);
     List<UserDTO> getAllUserListByUserDTO(UserDTO dto);
+    String getNameByUserid(Integer id);
 }

+ 20 - 0
src/main/java/com/welampiot/service/WorkManageDescService.java

@@ -0,0 +1,20 @@
+package com.welampiot.service;
+
+import com.welampiot.dto.WorkManageDescDTO;
+
+import java.util.List;
+
+/**
+ * ClassName: WorkManageDescService
+ * Package: com.welampiot.service
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/6/28 - 9:27
+ * @Version: v1.0
+ */
+public interface WorkManageDescService {
+    List<WorkManageDescDTO> getWorkManageDescDetails(Integer id);
+
+    void addWorkManageDescData(WorkManageDescDTO dto);
+}

+ 2 - 0
src/main/java/com/welampiot/service/WorkManageFileService.java

@@ -15,4 +15,6 @@ import java.util.List;
  */
 public interface WorkManageFileService {
     List<WorkManageFileDTO> getWorkManageFileListById(Integer id);
+
+    void updateWorkManageFile(WorkManageFileDTO dto);
 }

+ 10 - 0
src/main/java/com/welampiot/service/WorkManageService.java

@@ -28,4 +28,14 @@ public interface WorkManageService {
     Integer getWorkManageTotal5(WorkManageVO vo);
 
     Integer getWorkManageTotal6(WorkManageVO vo);
+
+    WorkManageDTO getWorkManageInfoById(Integer id);
+
+    void addWorkManageData(WorkManageDTO dto);
+
+    void updateWorkManageData(WorkManageDTO dto);
+
+    void updateWorkStatus(WorkManageDTO dto);
+
+    WorkManageDTO getAlarmIdAndUseridById(Integer id);
 }

+ 5 - 0
src/main/java/com/welampiot/service/impl/AllAlarmInfoLogServiceImpl.java

@@ -116,4 +116,9 @@ public class AllAlarmInfoLogServiceImpl implements AllAlarmInfoLogService {
     public List<AllAlarmInfoLogDTO> getElectricBoxAlarmListByVO(AllAlarmInfoLogVO vo) {
         return allAlarmInfoLogDao.getElectricBoxAlarmListByVO(vo);
     }
+
+    @Override
+    public void updateAlarmStatus(AllAlarmInfoLogDTO dto) {
+        allAlarmInfoLogDao.updateAlarmStatus(dto);
+    }
 }

+ 5 - 0
src/main/java/com/welampiot/service/impl/UserServiceImpl.java

@@ -99,4 +99,9 @@ public class UserServiceImpl implements UserService {
     public List<UserDTO> getAllUserListByUserDTO(UserDTO dto) {
         return userDao.getAllUserListByUserDTO(dto);
     }
+
+    @Override
+    public String getNameByUserid(Integer id) {
+        return userDao.getNameByUserid(id);
+    }
 }

+ 34 - 0
src/main/java/com/welampiot/service/impl/WorkManageDescServiceImpl.java

@@ -0,0 +1,34 @@
+package com.welampiot.service.impl;
+
+import com.welampiot.dao.WorkManageDescDao;
+import com.welampiot.dto.WorkManageDescDTO;
+import com.welampiot.service.WorkManageDescService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * ClassName: WorkManageDescServiceImpl
+ * Package: com.welampiot.service.impl
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/6/28 - 9:27
+ * @Version: v1.0
+ */
+@Service
+public class WorkManageDescServiceImpl implements WorkManageDescService {
+    @Autowired
+    private WorkManageDescDao workManageDescDao;
+
+    @Override
+    public List<WorkManageDescDTO> getWorkManageDescDetails(Integer id) {
+        return workManageDescDao.getWorkManageDescDetails(id);
+    }
+
+    @Override
+    public void addWorkManageDescData(WorkManageDescDTO dto) {
+        workManageDescDao.addWorkManageDescData(dto);
+    }
+}

+ 5 - 0
src/main/java/com/welampiot/service/impl/WorkManageFileServiceImpl.java

@@ -26,4 +26,9 @@ public class WorkManageFileServiceImpl implements WorkManageFileService {
     public List<WorkManageFileDTO> getWorkManageFileListById(Integer id) {
         return workManageFileDao.getWorkManageFileListById(id);
     }
+
+    @Override
+    public void updateWorkManageFile(WorkManageFileDTO dto) {
+        workManageFileDao.updateWorkManageFile(dto);
+    }
 }

+ 25 - 0
src/main/java/com/welampiot/service/impl/WorkManageServiceImpl.java

@@ -57,4 +57,29 @@ public class WorkManageServiceImpl implements WorkManageService {
     public Integer getWorkManageTotal6(WorkManageVO vo) {
         return workManageDao.getWorkManageTotal6(vo);
     }
+
+    @Override
+    public WorkManageDTO getWorkManageInfoById(Integer id) {
+        return workManageDao.getWorkManageInfoById(id);
+    }
+
+    @Override
+    public void addWorkManageData(WorkManageDTO dto) {
+        workManageDao.addWorkManageData(dto);
+    }
+
+    @Override
+    public void updateWorkManageData(WorkManageDTO dto) {
+        workManageDao.updateWorkManageData(dto);
+    }
+
+    @Override
+    public void updateWorkStatus(WorkManageDTO dto) {
+        workManageDao.updateWorkStatus(dto);
+    }
+
+    @Override
+    public WorkManageDTO getAlarmIdAndUseridById(Integer id) {
+        return workManageDao.getAlarmIdAndUseridById(id);
+    }
 }

+ 40 - 0
src/main/java/com/welampiot/vo/WorkManageInfoVO.java

@@ -0,0 +1,40 @@
+package com.welampiot.vo;
+
+import com.welampiot.dto.WorkManageDescDTO;
+import com.welampiot.dto.WorkManageFileDTO;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * ClassName: WorkManageInfoVO
+ * Package: com.welampiot.vo
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/6/28 - 9:47
+ * @Version: v1.0
+ */
+@Data
+public class WorkManageInfoVO implements Serializable {
+    private Integer id;
+
+    private String openTime; // 发生时间
+
+    private String location; // 位置信息
+
+    private String number;
+
+    private String script;
+
+    private String longitude;
+
+    private String latitude;
+
+    private Integer level;
+
+    private List<WorkManageFileDTO> fileList;
+
+    private List<WorkManageDescDTO> history;
+}

+ 8 - 0
src/main/resources/mapper/AllAlarmInfoLogMapper.xml

@@ -449,4 +449,12 @@
         </if>
     </select>
 
+    <!-- 更新故障状态 -->
+    <update id="updateAlarmStatus" parameterType="Integer">
+        update all_alarm_info_log a
+        set
+            a.status = #{status}
+        where a.id = #{id}
+    </update>
+
 </mapper>

+ 6 - 0
src/main/resources/mapper/UserMapper.xml

@@ -218,5 +218,11 @@
         from user u
         where u.username = #{username}
     </select>
+
+    <select id="getNameByUserid" resultType="String">
+        select u.name
+        from user u
+        where u.id = #{id}
+    </select>
     
 </mapper>

+ 16 - 0
src/main/resources/mapper/WorkManageDescMapper.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.welampiot.dao.WorkManageDescDao">
+
+    <select id="getWorkManageDescDetails" resultType="WorkManageDescDTO">
+        select w.create_time as createTime,w.`describe`
+        from work_manage_desc w
+        where w.work_manage_id = #{id}
+    </select>
+
+    <insert id="addWorkManageDescData" parameterType="WorkManageDescDTO" useGeneratedKeys="true" keyProperty="id">
+        insert into work_manage_desc(work_manage_id, `describe`, create_time)
+        values (#{workManageId},#{describe},#{createTime})
+    </insert>
+
+</mapper>

+ 10 - 1
src/main/resources/mapper/WorkManageFileMapper.xml

@@ -3,9 +3,18 @@
 <mapper namespace="com.welampiot.dao.WorkManageFileDao">
 
     <select id="getWorkManageFileListById" resultType="WorkManageFileDTO">
-        select w.id,w.url
+        select w.id,w.url,w.name
         from work_manage_file w
         where w.work_manage_id = #{id}
     </select>
 
+    <update id="updateWorkManageFile" parameterType="WorkManageFileDTO">
+        update work_manage_file w
+        set
+            w.url = #{url},
+            w.name = #{name},
+            w.work_manage_id = #{workManageId}
+        where w.id = #{id}
+    </update>
+
 </mapper>

+ 47 - 0
src/main/resources/mapper/WorkManageMapper.xml

@@ -155,5 +155,52 @@
             </foreach>
         </if>
     </select>
+    
+    <!-- 工单详情 -->
+    <select id="getWorkManageInfoById" resultType="WorkManageDTO">
+        select w.id,w.number,w.open_time openTime,w.script,
+               w.level,w.location,w.longitude,w.latitude
+        from work_manage w
+        where w.id = #{id}
+    </select>
+
+    <insert id="addWorkManageData" parameterType="WorkManageDTO" keyProperty="id" useGeneratedKeys="true">
+        insert into work_manage(sectionId,open_time,location,dev_type,`level`,
+                                dev_name,script,longitude,latitude,alarm_id,
+                                create_time,user_id)
+        values
+            (#{sectionId},#{openTime},#{location},#{devType},#{level},
+             #{devName},#{script},#{longitude},#{latitude},#{alarmId},
+             #{createTime},#{userid})
+    </insert>
+
+    <update id="updateWorkManageData" parameterType="WorkManageDTO">
+        update work_manage w
+        set
+            w.sectionId = #{sectionId},
+            w.open_time = #{openTime},
+            w.location = #{location},
+            w.dev_type = #{devType},
+            w.dev_name = #{devName},
+            w.script = #{script},
+            w.longitude = #{longitude},
+            w.latitude = #{latitude},
+            w.alarm_id = #{alarmId}
+        where w.id = #{id}
+    </update>
+
+    <!-- 更新工单状态 -->
+    <update id="updateWorkStatus" parameterType="Integer">
+        update work_manage w
+        set
+            w.status = #{status}
+        where w.id = #{id}
+    </update>
+
+    <select id="getAlarmIdAndUseridById" resultType="WorkManageDTO">
+        select w.alarm_id as alarmId,w.user_id as userid
+        from work_manage w
+        where w.id = #{id}
+    </select>
 
 </mapper>