|
@@ -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);
|
|
|
+ }
|
|
|
}
|