Prechádzať zdrojové kódy

缺陷管理:添加编辑缺陷、设置缺陷状态、派发缺陷、缺陷列表、缺陷详情

zhj 2 rokov pred
rodič
commit
84128989ef

+ 274 - 0
src/main/java/com/welampiot/controller/DefectManageController.java

@@ -0,0 +1,274 @@
+package com.welampiot.controller;
+
+import com.welampiot.common.BaseResult;
+import com.welampiot.common.InterfaceResultEnum;
+import com.welampiot.dto.DefectManageDTO;
+import com.welampiot.dto.DefectManageDescDTO;
+import com.welampiot.dto.DefectManageFileDTO;
+import com.welampiot.service.*;
+import com.welampiot.utils.ToolUtils;
+import com.welampiot.vo.DefectManageInfoVO;
+import com.welampiot.vo.DefectManageVO;
+import com.welampiot.vo.RepairPersonnelDetailsVO;
+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;
+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.ArrayList;
+import java.util.List;
+
+/**
+ * ClassName: DefectManageController
+ * Package: com.welampiot.controller
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/6/29 - 10:02
+ * @Version: v1.0
+ */
+@RestController
+@CrossOrigin
+@RequestMapping("/defectManage")
+public class DefectManageController {
+    @Autowired
+    private DefectManageService defectManageService;
+
+    @Autowired
+    private ToolUtils toolUtils;
+
+    @Autowired
+    private RepairPersonnelService repairPersonnelService;
+
+    @Autowired
+    private UserService userService;
+
+    @Autowired
+    private DefectManageFileService defectManageFileService;
+
+    @Autowired
+    private DefectManageDescService defectManageDescService;
+
+    /**
+     * 添加编辑缺陷
+     * @param request 要添加编辑的缺陷属性
+     * @return 更新缺陷数据
+     */
+    @RequestMapping(value = "/saveDefectManage", method = RequestMethod.POST)
+    public BaseResult<?> saveDefectManage(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 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 (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);
+        DefectManageDTO defectManageDTO = new DefectManageDTO();
+        defectManageDTO.setSectionId(sectionId);
+        defectManageDTO.setDevType(devType);
+        defectManageDTO.setLevel(level);
+        defectManageDTO.setOpenTime(openTime);
+        defectManageDTO.setLocation(location);
+        defectManageDTO.setDevName(devName);
+        defectManageDTO.setScript(script);
+        defectManageDTO.setLongitude(longitude);
+        defectManageDTO.setLatitude(latitude);
+        if (id == 0) { // 添加
+            long l = System.currentTimeMillis();
+            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            defectManageDTO.setCreateTime(simpleDateFormat.format(l));
+            Integer userId = repairPersonnelService.getUserIdByUsername(username);
+            defectManageDTO.setUserid(userId);
+            defectManageService.addDefectManage(defectManageDTO);
+            Integer userid = defectManageService.getUseridById(id);
+            String name = userService.getNameByUserid(userid);
+            DefectManageDescDTO defectManageDescDTO = new DefectManageDescDTO();
+            defectManageDescDTO.setDefectManageId(id);
+            defectManageDescDTO.setCreateTime(simpleDateFormat.format(l));
+            defectManageDescDTO.setDescribe(name + " 创建缺陷");
+            defectManageDescService.addDefectManageDescData(defectManageDescDTO);
+        } else { // 编辑
+            defectManageDTO.setId(id);
+            defectManageService.updateDefectManage(defectManageDTO);
+            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);
+            DefectManageFileDTO defectManageFileDTO = new DefectManageFileDTO();
+            defectManageFileDTO.setId(fileId);
+            defectManageFileDTO.setDefectManageId(id);
+            defectManageFileDTO.setName(name);
+            defectManageFileDTO.setUrl(url);
+            defectManageFileService.updateDefectManageFile(defectManageFileDTO);
+        }
+        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(处理中)
+        DefectManageDTO defectManageDTO = new DefectManageDTO();
+        defectManageDTO.setId(id);
+        defectManageDTO.setStatus(1);
+        defectManageService.updateDefectManageStatus(defectManageDTO);
+        Integer userid = defectManageService.getUseridById(id);
+        //记录工单的描述信息
+        long l = System.currentTimeMillis();
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String format = simpleDateFormat.format(l);
+        String name = userService.getNameByUserid(userid);
+        RepairPersonnelDetailsVO detailsVO = repairPersonnelService.getDetailsByRepairPersonnelDTO(workId);
+        if (detailsVO == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
+        DefectManageDescDTO defectManageDescDTO = new DefectManageDescDTO();
+        defectManageDescDTO.setDefectManageId(id);
+        defectManageDescDTO.setDescribe(name + " 派发缺陷-> " + detailsVO.getName());
+        defectManageDescDTO.setCreateTime(format);
+        defectManageDescService.addDefectManageDescData(defectManageDescDTO);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
+
+    /**
+     * 设置缺陷状态
+     * @param request 缺陷id,缺陷状态
+     * @return 修改缺陷状态,记录缺陷信息
+     */
+    @RequestMapping(value = "/setDefectManageStatus", method = RequestMethod.POST)
+    public BaseResult<?> setDefectManageStatus(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);
+        // 更新工单状态
+        DefectManageDTO defectManageDTO = new DefectManageDTO();
+        defectManageDTO.setId(id);
+        defectManageDTO.setStatus(status);
+        defectManageService.updateDefectManageStatus(defectManageDTO);
+        Integer userid = defectManageService.getUseridById(id);
+        //记录工单的描述信息
+        long l = System.currentTimeMillis();
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String format = simpleDateFormat.format(l);
+        String name = userService.getNameByUserid(userid);
+        DefectManageDescDTO defectManageDescDTO = new DefectManageDescDTO();
+        defectManageDescDTO.setDefectManageId(id);
+        if (status == 4) {
+            defectManageDescDTO.setDescribe(name + " 归档");
+        } else if (status == 3) {
+            defectManageDescDTO.setDescribe(name + " 复核通过,已经结案");
+        } else if (status == 2) {
+            defectManageDescDTO.setDescribe(name + " 标记处理,进入复核状态");
+        } else if (status == 1) {
+            defectManageDescDTO.setDescribe(name + " 复核不通过,重新进入未处理");
+        }
+        defectManageDescDTO.setCreateTime(format);
+        defectManageDescService.addDefectManageDescData(defectManageDescDTO);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
+
+    /**
+     * 缺陷列表
+     * @param request 分页、关键字搜索、区域路段筛选
+     * @return 缺陷列表
+     */
+    @RequestMapping(value = "/defectManageList", method = RequestMethod.POST)
+    public BaseResult<?> defectManageList(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer areaId = (Integer) toolUtils.getRequestContent(request,"areaId",1);
+        Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1);
+        Integer provinceId = (Integer) toolUtils.getRequestContent(request,"provinceId",1);
+        Integer cityId = (Integer) toolUtils.getRequestContent(request,"cityId",1);
+        Integer status = (Integer) toolUtils.getRequestContent(request,"status",1);
+        String keyword = (String) toolUtils.getRequestContent(request,"keyword",2);
+        int page = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page"));
+        int count = request.getParameter("count") == null ? 16 : Integer.parseInt(request.getParameter("count"));
+
+        DefectManageVO vo = new DefectManageVO();
+        vo.setPage(count * (page - 1));
+        vo.setCount(count);
+        vo.setSectionId(sectionId);
+        vo.setAreaId(areaId);
+        vo.setCityId(cityId);
+        vo.setProvinceId(provinceId);
+        vo.setKeyword(keyword);
+        vo.setStatus(status);
+        vo.setSectionList(toolUtils.getSectionList(request));
+        List<DefectManageDTO> defectManageList = defectManageService.getDefectManageListByVO(vo);
+        List<DefectManageDTO> list = new ArrayList<>();
+        defectManageList.forEach(defectManageDTO -> {
+            if (defectManageDTO.getId() != null) {
+                List<DefectManageFileDTO> fileList = defectManageFileService.getDefectManageFileListById(defectManageDTO.getId());
+                defectManageDTO.setFileList(fileList);
+            }
+            list.add(defectManageDTO);
+        });
+        DefectManageVO defectManageVO = new DefectManageVO();
+        defectManageVO.setList(list);
+        defectManageVO.setTotal(defectManageService.getDefectManageTotal(vo));
+        defectManageVO.setTotal1(defectManageService.getDefectManageTotal(vo));
+        defectManageVO.setTotal2(defectManageService.getDefectManageTotal2(vo));
+        defectManageVO.setTotal3(defectManageService.getDefectManageTotal3(vo));
+        defectManageVO.setTotal4(defectManageService.getDefectManageTotal4(vo));
+        defectManageVO.setTotal5(defectManageService.getDefectManageTotal5(vo));
+        defectManageVO.setTotal6(defectManageService.getDefectManageTotal6(vo));
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,defectManageVO);
+    }
+
+    /**
+     * 缺陷详情
+     * @param request 缺陷id
+     * @return 缺陷详情
+     */
+    @RequestMapping(value = "/defectManageInfo", method = RequestMethod.POST)
+    public BaseResult<?> defectManageInfo(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);
+        DefectManageDTO defectManageDTO = defectManageService.getDefectManageInfoById(id);
+        if (defectManageDTO == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
+        DefectManageInfoVO defectManageInfoVO = new DefectManageInfoVO();
+        BeanUtils.copyProperties(defectManageDTO,defectManageInfoVO);
+        List<DefectManageFileDTO> fileList = defectManageFileService.getDefectManageFileListById(defectManageDTO.getId());
+        List<DefectManageDescDTO> descList = defectManageDescService.getDefectManageDescDetails(defectManageDTO.getId());
+        defectManageInfoVO.setFileList(fileList);
+        defectManageInfoVO.setHistory(descList);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,defectManageInfoVO);
+    }
+}

+ 42 - 0
src/main/java/com/welampiot/dao/DefectManageDao.java

@@ -0,0 +1,42 @@
+package com.welampiot.dao;
+
+import com.welampiot.dto.DefectManageDTO;
+import com.welampiot.vo.DefectManageVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * ClassName: DefectManageDao
+ * Package: com.welampiot.dao
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/6/29 - 9:58
+ * @Version: v1.0
+ */
+public interface DefectManageDao {
+    void addDefectManage(DefectManageDTO dto);
+
+    void updateDefectManage(DefectManageDTO dto);
+
+    void updateDefectManageStatus(DefectManageDTO dto);
+
+    Integer getUseridById(@Param("id") Integer id);
+
+    List<DefectManageDTO> getDefectManageListByVO(DefectManageVO vo);
+
+    Integer getDefectManageTotal(DefectManageVO vo);
+
+    Integer getDefectManageTotal2(DefectManageVO vo);
+
+    Integer getDefectManageTotal3(DefectManageVO vo);
+
+    Integer getDefectManageTotal4(DefectManageVO vo);
+
+    Integer getDefectManageTotal5(DefectManageVO vo);
+
+    Integer getDefectManageTotal6(DefectManageVO vo);
+
+    DefectManageDTO getDefectManageInfoById(@Param("id") Integer id);
+}

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

@@ -0,0 +1,21 @@
+package com.welampiot.dao;
+
+import com.welampiot.dto.DefectManageDescDTO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * ClassName: DefectManageDescDao
+ * Package: com.welampiot.dao
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/6/29 - 10:36
+ * @Version: v1.0
+ */
+public interface DefectManageDescDao {
+    List<DefectManageDescDTO> getDefectManageDescDetails(@Param("id") Integer id);
+
+    void addDefectManageDescData(DefectManageDescDTO dto);
+}

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

@@ -0,0 +1,21 @@
+package com.welampiot.dao;
+
+import com.welampiot.dto.DefectManageFileDTO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * ClassName: DefectManageFileDao
+ * Package: com.welampiot.dao
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/6/29 - 10:47
+ * @Version: v1.0
+ */
+public interface DefectManageFileDao {
+    List<DefectManageFileDTO> getDefectManageFileListById(@Param("id") Integer id);
+
+    void updateDefectManageFile(DefectManageFileDTO dto);
+}

+ 54 - 0
src/main/java/com/welampiot/dto/DefectManageDTO.java

@@ -0,0 +1,54 @@
+package com.welampiot.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * ClassName: DefectManageDTO
+ * Package: com.welampiot.dto
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/6/29 - 9:36
+ * @Version: v1.0
+ */
+@Data
+public class DefectManageDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private Integer id;
+
+    private String number;
+
+    private String openTime;
+
+    private String location;
+
+    private Integer devType;
+
+    private String devName;
+
+    private String script;
+
+    private Integer workId;
+
+    private String createTime;
+
+    private Integer status;
+
+    private Integer level;
+
+    private String workName;
+
+    private Integer userid;
+
+    private String longitude;
+
+    private String latitude;
+
+    private Integer sectionId;
+
+    private List<DefectManageFileDTO> fileList;
+}

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

@@ -0,0 +1,27 @@
+package com.welampiot.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * ClassName: DefectManageDescDTO
+ * Package: com.welampiot.dto
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/6/29 - 10:22
+ * @Version: v1.0
+ */
+@Data
+public class DefectManageDescDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private Integer id;
+
+    private Integer defectManageId;
+
+    private String describe;
+
+    private String createTime;
+}

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

@@ -0,0 +1,27 @@
+package com.welampiot.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * ClassName: DefectManageFileDTO
+ * Package: com.welampiot.dto
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/6/29 - 10:20
+ * @Version: v1.0
+ */
+@Data
+public class DefectManageFileDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private Integer id;
+
+    private Integer defectManageId;
+
+    private String name;
+
+    private String url;
+}

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

@@ -0,0 +1,20 @@
+package com.welampiot.service;
+
+import com.welampiot.dto.DefectManageDescDTO;
+
+import java.util.List;
+
+/**
+ * ClassName: DefectManageDescService
+ * Package: com.welampiot.service
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/6/29 - 10:39
+ * @Version: v1.0
+ */
+public interface DefectManageDescService {
+    List<DefectManageDescDTO> getDefectManageDescDetails(Integer id);
+
+    void addDefectManageDescData(DefectManageDescDTO dto);
+}

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

@@ -0,0 +1,20 @@
+package com.welampiot.service;
+
+import com.welampiot.dto.DefectManageFileDTO;
+
+import java.util.List;
+
+/**
+ * ClassName: DefectManageFileService
+ * Package: com.welampiot.service
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/6/29 - 10:50
+ * @Version: v1.0
+ */
+public interface DefectManageFileService {
+    List<DefectManageFileDTO> getDefectManageFileListById(Integer id);
+
+    void updateDefectManageFile(DefectManageFileDTO dto);
+}

+ 41 - 0
src/main/java/com/welampiot/service/DefectManageService.java

@@ -0,0 +1,41 @@
+package com.welampiot.service;
+
+import com.welampiot.dto.DefectManageDTO;
+import com.welampiot.vo.DefectManageVO;
+
+import java.util.List;
+
+/**
+ * ClassName: DefectManageService
+ * Package: com.welampiot.service
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/6/29 - 9:59
+ * @Version: v1.0
+ */
+public interface DefectManageService {
+    void addDefectManage(DefectManageDTO dto);
+
+    void updateDefectManage(DefectManageDTO dto);
+
+    void updateDefectManageStatus(DefectManageDTO dto);
+
+    Integer getUseridById(Integer id);
+
+    List<DefectManageDTO> getDefectManageListByVO(DefectManageVO vo);
+
+    Integer getDefectManageTotal(DefectManageVO vo);
+
+    Integer getDefectManageTotal2(DefectManageVO vo);
+
+    Integer getDefectManageTotal3(DefectManageVO vo);
+
+    Integer getDefectManageTotal4(DefectManageVO vo);
+
+    Integer getDefectManageTotal5(DefectManageVO vo);
+
+    Integer getDefectManageTotal6(DefectManageVO vo);
+
+    DefectManageDTO getDefectManageInfoById(Integer id);
+}

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

@@ -0,0 +1,34 @@
+package com.welampiot.service.impl;
+
+import com.welampiot.dao.DefectManageDescDao;
+import com.welampiot.dto.DefectManageDescDTO;
+import com.welampiot.service.DefectManageDescService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * ClassName: DefectManageDescServiceImpl
+ * Package: com.welampiot.service.impl
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/6/29 - 10:39
+ * @Version: v1.0
+ */
+@Service
+public class DefectManageDescServiceImpl implements DefectManageDescService {
+    @Autowired
+    private DefectManageDescDao defectManageDescDao;
+
+    @Override
+    public List<DefectManageDescDTO> getDefectManageDescDetails(Integer id) {
+        return defectManageDescDao.getDefectManageDescDetails(id);
+    }
+
+    @Override
+    public void addDefectManageDescData(DefectManageDescDTO dto) {
+        defectManageDescDao.addDefectManageDescData(dto);
+    }
+}

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

@@ -0,0 +1,34 @@
+package com.welampiot.service.impl;
+
+import com.welampiot.dao.DefectManageFileDao;
+import com.welampiot.dto.DefectManageFileDTO;
+import com.welampiot.service.DefectManageFileService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * ClassName: DefectManageFileServiceImpl
+ * Package: com.welampiot.service.impl
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/6/29 - 10:50
+ * @Version: v1.0
+ */
+@Service
+public class DefectManageFileServiceImpl implements DefectManageFileService {
+    @Autowired
+    private DefectManageFileDao defectManageFileDao;
+
+    @Override
+    public List<DefectManageFileDTO> getDefectManageFileListById(Integer id) {
+        return defectManageFileDao.getDefectManageFileListById(id);
+    }
+
+    @Override
+    public void updateDefectManageFile(DefectManageFileDTO dto) {
+        defectManageFileDao.updateDefectManageFile(dto);
+    }
+}

+ 85 - 0
src/main/java/com/welampiot/service/impl/DefectManageServiceImpl.java

@@ -0,0 +1,85 @@
+package com.welampiot.service.impl;
+
+import com.welampiot.dao.DefectManageDao;
+import com.welampiot.dto.DefectManageDTO;
+import com.welampiot.service.DefectManageService;
+import com.welampiot.vo.DefectManageVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * ClassName: DefectManageServiceImpl
+ * Package: com.welampiot.service.impl
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/6/29 - 9:59
+ * @Version: v1.0
+ */
+@Service
+public class DefectManageServiceImpl implements DefectManageService {
+    @Autowired
+    private DefectManageDao defectManageDao;
+
+    @Override
+    public void addDefectManage(DefectManageDTO dto) {
+        defectManageDao.addDefectManage(dto);
+    }
+
+    @Override
+    public void updateDefectManage(DefectManageDTO dto) {
+        defectManageDao.updateDefectManage(dto);
+    }
+
+    @Override
+    public void updateDefectManageStatus(DefectManageDTO dto) {
+        defectManageDao.updateDefectManageStatus(dto);
+    }
+
+    @Override
+    public Integer getUseridById(Integer id) {
+        return defectManageDao.getUseridById(id);
+    }
+
+    @Override
+    public List<DefectManageDTO> getDefectManageListByVO(DefectManageVO vo) {
+        return defectManageDao.getDefectManageListByVO(vo);
+    }
+
+    @Override
+    public Integer getDefectManageTotal(DefectManageVO vo) {
+        return defectManageDao.getDefectManageTotal(vo);
+    }
+
+    @Override
+    public Integer getDefectManageTotal2(DefectManageVO vo) {
+        return defectManageDao.getDefectManageTotal2(vo);
+    }
+
+    @Override
+    public Integer getDefectManageTotal3(DefectManageVO vo) {
+        return defectManageDao.getDefectManageTotal3(vo);
+    }
+
+    @Override
+    public Integer getDefectManageTotal4(DefectManageVO vo) {
+        return defectManageDao.getDefectManageTotal4(vo);
+    }
+
+    @Override
+    public Integer getDefectManageTotal5(DefectManageVO vo) {
+        return defectManageDao.getDefectManageTotal5(vo);
+    }
+
+    @Override
+    public Integer getDefectManageTotal6(DefectManageVO vo) {
+        return defectManageDao.getDefectManageTotal6(vo);
+    }
+
+    @Override
+    public DefectManageDTO getDefectManageInfoById(Integer id) {
+        return defectManageDao.getDefectManageInfoById(id);
+    }
+}

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

@@ -0,0 +1,40 @@
+package com.welampiot.vo;
+
+import com.welampiot.dto.DefectManageDescDTO;
+import com.welampiot.dto.DefectManageFileDTO;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * ClassName: DefectManageInfoVO
+ * Package: com.welampiot.vo
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/6/29 - 13:59
+ * @Version: v1.0
+ */
+@Data
+public class DefectManageInfoVO 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<DefectManageFileDTO> fileList;
+
+    private List<DefectManageDescDTO> history;
+}

+ 49 - 0
src/main/java/com/welampiot/vo/DefectManageVO.java

@@ -0,0 +1,49 @@
+package com.welampiot.vo;
+
+import com.welampiot.dto.DefectManageDTO;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * ClassName: DefectManageVO
+ * Package: com.welampiot.vo
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/6/29 - 13:40
+ * @Version: v1.0
+ */
+@Data
+public class DefectManageVO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private Integer page;
+
+    private Integer count;
+
+    private Integer status;
+
+    private String keyword;
+
+    private Integer areaId;
+
+    private Integer sectionId;
+
+    private Integer cityId;
+
+    private Integer provinceId;
+
+    private List<Integer> sectionList;
+
+    private Integer total; // 设备总数(列表使用)
+    private Integer total1; // 设备总数(tab栏使用)
+    private Integer total2; // 未派发
+    private Integer total3; // 处理中
+    private Integer total4; // 复核中
+    private Integer total5; // 已结案
+    private Integer total6; // 已归档
+
+    private List<DefectManageDTO> list;
+}

+ 16 - 0
src/main/resources/mapper/DefectManageDescMapper.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.DefectManageDescDao">
+
+    <select id="getDefectManageDescDetails" resultType="DefectManageDescDTO">
+        select d.create_time as createTime,d.`describe`
+        from defect_manage_desc d
+        where d.defect_manage_id = #{id}
+    </select>
+
+    <insert id="addDefectManageDescData" parameterType="DefectManageDescDTO" useGeneratedKeys="true" keyProperty="id">
+        insert into defect_manage_desc(defect_manage_id, `describe`, create_time)
+        values (#{defectManageId},#{describe},#{createTime})
+    </insert>
+
+</mapper>

+ 20 - 0
src/main/resources/mapper/DefectManageFileMapper.xml

@@ -0,0 +1,20 @@
+<?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.DefectManageFileDao">
+
+    <select id="getDefectManageFileListById" resultType="DefectManageFileDTO">
+        select d.id,d.url,d.name
+        from defect_manage_file d
+        where d.defect_manage_id = #{id}
+    </select>
+
+    <update id="updateDefectManageFile" parameterType="DefectManageFileDTO">
+        update defect_manage_file d
+        set
+            d.url = #{url},
+            d.name = #{name},
+            d.defect_manage_id = #{defectManageId}
+        where d.id = #{id}
+    </update>
+
+</mapper>

+ 203 - 0
src/main/resources/mapper/DefectManageMapper.xml

@@ -0,0 +1,203 @@
+<?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.DefectManageDao">
+    
+    <insert id="addDefectManage" keyProperty="id" useGeneratedKeys="true" parameterType="DefectManageDTO">
+        insert into defect_manage(open_time, location, dev_type, dev_name, script, create_time, `level`, user_id, longitude, latitude, sectionid)
+        values (#{openTime},#{location},#{devType},#{devName},#{script},#{createTime},#{level},#{userid},#{longitude},#{latitude},#{sectionId})
+    </insert>
+
+    <update id="updateDefectManage" parameterType="DefectManageDTO">
+        update defect_manage d
+        set
+            d.open_time = #{openTime},
+            d.location = #{location},
+            d.dev_type = #{devType},
+            d.dev_name = #{devName},
+            d.script = #{script},
+            d.create_time = #{createTime},
+            d.level = #{level},
+            d.user_id = #{userid},
+            d.longitude = #{longitude},
+            d.latitude = #{latitude},
+            d.sectionId = #{sectionId}
+        where d.id = #{id}
+    </update>
+
+    <!-- 更新工单状态 -->
+    <update id="updateDefectManageStatus" parameterType="DefectManageDTO">
+        update defect_manage d
+        set
+            d.status = #{status}
+        where d.id = #{id}
+    </update>
+
+    <select id="getUseridById" resultType="Integer">
+        select d.user_id as userid
+        from defect_manage d
+        where d.id = #{id}
+    </select>
+
+    <select id="getDefectManageListByVO" resultType="DefectManageDTO" parameterType="DefectManageVO">
+        select d.id,d.number,d.open_time openTime,d.script,d.location,d.status,
+               d.level,d.work_name as workName
+        from defect_manage d
+        left join defect_manage_file dmf on d.id = dmf.defect_manage_id
+        left join section s on d.sectionId = s.id
+        left join global_location gl on s.pid = gl.id
+        left join global_location gl1 on gl.pid = gl1.id
+        left join global_location gl2 on gl1.pid = gl2.id
+        where 1=1
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and d.sectionId in
+            <foreach collection="sectionList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="sectionId != null and sectionId != 0">
+            and s.id = #{sectionId}
+        </if>
+        <if test="areaId != null and areaId != 0">
+            and gl.id = #{areaId}
+        </if>
+        <if test="cityId != null and cityId != 0">
+            and gl1.id = #{cityId}
+        </if>
+        <if test="provinceId != null and provinceId != 0">
+            and gl2.id = #{provinceId}
+        </if>
+        <if test="keyword != null and keyword != ''">
+            and d.number like '%${keyword}%'
+        </if>
+        <choose>
+            <when test="status == 4">
+                and d.status = 4
+            </when>
+            <when test="status == 3">
+                and d.status = 3
+            </when>
+            <when test="status == 2">
+                and d.status = 2
+            </when>
+            <when test="status == 1">
+                and d.status = 1
+            </when>
+            <otherwise>
+                and d.status = 0
+            </otherwise>
+        </choose>
+        <if test="page >= 0 and count > 0">
+            limit #{page},#{count}
+        </if>
+    </select>
+
+    <!-- 总数 -->
+    <select id="getDefectManageTotal" resultType="Integer" parameterType="DefectManageVO">
+        select count(d.id) as total
+        from defect_manage d
+        left join section s on d.sectionId = s.id
+        left join global_location gl on s.pid = gl.id
+        left join global_location gl1 on gl.pid = gl1.id
+        left join global_location gl2 on gl1.pid = gl2.id
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            where d.sectionId in
+            <foreach collection="sectionList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+
+    <!-- 未派发数 -->
+    <select id="getDefectManageTotal2" resultType="Integer" parameterType="DefectManageVO">
+        select count(d.id) as total
+        from defect_manage d
+        left join section s on d.sectionId = s.id
+        left join global_location gl on s.pid = gl.id
+        left join global_location gl1 on gl.pid = gl1.id
+        left join global_location gl2 on gl1.pid = gl2.id
+        where d.status = 0
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and d.sectionId in
+            <foreach collection="sectionList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+
+    <!-- 处理中数 -->
+    <select id="getDefectManageTotal3" resultType="Integer" parameterType="DefectManageVO">
+        select count(d.id) as total
+        from defect_manage d
+        left join section s on d.sectionId = s.id
+        left join global_location gl on s.pid = gl.id
+        left join global_location gl1 on gl.pid = gl1.id
+        left join global_location gl2 on gl1.pid = gl2.id
+        where d.status = 1
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and d.sectionId in
+            <foreach collection="sectionList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+
+    <!-- 复核数 -->
+    <select id="getDefectManageTotal4" resultType="Integer" parameterType="DefectManageVO">
+        select count(d.id) as total
+        from defect_manage d
+        left join section s on d.sectionId = s.id
+        left join global_location gl on s.pid = gl.id
+        left join global_location gl1 on gl.pid = gl1.id
+        left join global_location gl2 on gl1.pid = gl2.id
+        where d.status = 2
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and d.sectionId in
+            <foreach collection="sectionList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+
+    <!-- 结案数 -->
+    <select id="getDefectManageTotal5" resultType="Integer" parameterType="DefectManageVO">
+        select count(d.id) as total
+        from defect_manage d
+        left join section s on d.sectionId = s.id
+        left join global_location gl on s.pid = gl.id
+        left join global_location gl1 on gl.pid = gl1.id
+        left join global_location gl2 on gl1.pid = gl2.id
+        where d.status = 3
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and d.sectionId in
+            <foreach collection="sectionList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+
+    <!-- 归档数 -->
+    <select id="getDefectManageTotal6" resultType="Integer" parameterType="DefectManageVO">
+        select count(d.id) as total
+        from defect_manage d
+        left join section s on d.sectionId = s.id
+        left join global_location gl on s.pid = gl.id
+        left join global_location gl1 on gl.pid = gl1.id
+        left join global_location gl2 on gl1.pid = gl2.id
+        where d.status = 4
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and d.sectionId in
+            <foreach collection="sectionList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+
+    <!-- 工单详情 -->
+    <select id="getDefectManageInfoById" resultType="DefectManageDTO">
+        select d.id,d.number,d.open_time openTime,d.script,
+               d.level,d.location,d.longitude,d.latitude
+        from defect_manage d
+        where d.id = #{id}
+    </select>
+
+</mapper>

+ 1 - 1
src/main/resources/mapper/WorkManageMapper.xml

@@ -190,7 +190,7 @@
     </update>
 
     <!-- 更新工单状态 -->
-    <update id="updateWorkStatus" parameterType="Integer">
+    <update id="updateWorkStatus" parameterType="WorkManageDTO">
         update work_manage w
         set
             w.status = #{status}