package com.wgcloud.controller;
|
|
import com.github.pagehelper.PageInfo;
|
import com.wgcloud.entity.InspectionTask;
|
import com.wgcloud.entity.TaskInfo;
|
import com.wgcloud.service.InspectionTaskService;
|
import com.wgcloud.service.LogInfoService;
|
import com.wgcloud.service.TaskInfoService;
|
import com.wgcloud.service.WorkLoggingService;
|
import com.wgcloud.util.DateUtil;
|
import com.wgcloud.util.PageUtil;
|
import com.wgcloud.util.staticvar.StaticKeys;
|
import org.apache.commons.lang3.StringUtils;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.ui.Model;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
import java.text.ParseException;
|
import java.text.SimpleDateFormat;
|
import java.time.LocalDate;
|
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeParseException;
|
import java.util.*;
|
|
/**
|
* @author kdq
|
* @version 1.0.0
|
* @ClassName InspectionTaskController.java
|
* @Description TODO
|
* @createTime 2023年02月16日 14:22:00
|
*/
|
@Controller
|
@RequestMapping("/inspectionTask")
|
public class InspectionTaskController {
|
|
private static final Logger logger = LoggerFactory.getLogger(InspectionTaskController.class);
|
|
@Resource
|
private InspectionTaskService inspectionTaskService;
|
@Resource
|
private LogInfoService logInfoService;
|
@Resource
|
private WorkLoggingService workLoggingService;
|
@Resource
|
private TaskInfoService taskInfoService;
|
/**
|
* 根据条件查询设备列表
|
*
|
* @param model
|
* @param request
|
* @return
|
*/
|
@RequestMapping(value = "list")
|
public String failureList(InspectionTask inspectionTask, Model model, HttpServletRequest request) {
|
Map<String, Object> params = new HashMap<String, Object>();
|
try {
|
StringBuffer url = new StringBuffer();
|
// if (!StringUtils.isEmpty(InspectionTask.getOldDeviceName())) {
|
// url.append("&oldDeviceName=").append(InspectionTask.getOldDeviceName());
|
// }
|
PageInfo pageInfo = inspectionTaskService.selectByParams(params, inspectionTask.getPage(), inspectionTask.getPageSize());
|
PageUtil.initPageNumber(pageInfo, model);
|
|
|
model.addAttribute("pageUrl", "/inspectionTask/list?1=1" + url.toString());
|
model.addAttribute("page", pageInfo);
|
model.addAttribute("inspectionTask", inspectionTask);
|
}catch (Exception e){
|
logger.error("查询设备更换列表错误", e);
|
logInfoService.save("查询资产信息错误", e.toString(), StaticKeys.LOG_XTCZ);
|
}
|
return "instask/tasklist";
|
}
|
|
@RequestMapping(value = "save")
|
public String saveInspectionTask(InspectionTask inspectionTask, Model model, HttpServletRequest request) {
|
try {
|
if (StringUtils.isEmpty(inspectionTask.getId())) {
|
inspectionTaskService.save(inspectionTask);
|
inspectionTaskService.saveLog(request, StaticKeys.LOG_ADD, inspectionTask);
|
workLoggingService.save(inspectionTask);
|
long l = subDaysByDate2(inspectionTask.getStartDate(), inspectionTask.getEndDate());
|
if(l>0){
|
for (long i = 0; i < l; i++) {
|
TaskInfo taskInfo = new TaskInfo();
|
taskInfo.setTaskId(inspectionTask.getId());
|
if(i == 0){
|
taskInfo.setTaskDate(inspectionTask.getStartDate());
|
}else {
|
String s = daysAgoOrAfter(inspectionTask.getStartDate(), new Long(i).intValue());
|
taskInfo.setTaskDate(s);
|
}
|
taskInfo.setIsOk(0);
|
taskInfoService.save(taskInfo);
|
}
|
}
|
} else {
|
inspectionTaskService.updateById(inspectionTask);
|
inspectionTaskService.saveLog(request, StaticKeys.LOG_UPDATE, inspectionTask);
|
workLoggingService.update(inspectionTask);
|
}
|
} catch (Exception e) {
|
logger.error("保存设备更换数据错误", e);
|
logInfoService.save("保存设备更换数据错误", e.toString(), StaticKeys.LOG_XTCZ);
|
}
|
return "redirect:/inspectionTask/list";
|
}
|
|
@RequestMapping(value = "save2")
|
public String save2(TaskInfo taskInfo) {
|
try {
|
taskInfoService.updateById(taskInfo);
|
} catch (Exception e) {
|
logger.error("修改任务详情错误", e);
|
logInfoService.save("修改任务详情错误", e.toString(), StaticKeys.LOG_XTCZ);
|
}
|
return "redirect:/inspectionTask/detail?id="+taskInfo.getTaskId();
|
}
|
|
/**
|
* 添加
|
*
|
* @param model
|
* @param request
|
* @return
|
*/
|
@RequestMapping(value = "edit")
|
public String edit(Model model, HttpServletRequest request) {
|
String errorMsg = "添加设备";
|
String id = request.getParameter("id");
|
InspectionTask inspectionTask = new InspectionTask();
|
try {
|
if (StringUtils.isEmpty(id)) {
|
model.addAttribute("inspectionTask", inspectionTask);
|
return "instask/add";
|
}
|
inspectionTask = inspectionTaskService.selectById(id);
|
model.addAttribute("inspectionTask", inspectionTask);
|
} catch (Exception e) {
|
logger.error(errorMsg, e);
|
logInfoService.save(errorMsg, e.toString(), StaticKeys.LOG_XTCZ);
|
}
|
return "instask/add";
|
}
|
|
/**
|
* 添加
|
*
|
* @param model
|
* @param request
|
* @return
|
*/
|
@RequestMapping(value = "edit2")
|
public String edit2(Model model, HttpServletRequest request) {
|
String errorMsg = "修改任务详情";
|
String id = request.getParameter("id");
|
TaskInfo taskInfo = new TaskInfo();
|
try {
|
if (StringUtils.isEmpty(id)) {
|
model.addAttribute("taskInfo", taskInfo);
|
return "instask/infoedit";
|
}
|
taskInfo = taskInfoService.selectById(id);
|
model.addAttribute("taskInfo", taskInfo);
|
} catch (Exception e) {
|
logger.error(errorMsg, e);
|
logInfoService.save(errorMsg, e.toString(), StaticKeys.LOG_XTCZ);
|
}
|
return "instask/infoedit";
|
}
|
|
/**
|
* 查看该应用统计图
|
*
|
* @param model
|
* @param request
|
* @return
|
*/
|
@RequestMapping(value = "view")
|
public String viewChart(Model model, HttpServletRequest request) {
|
String errorMsg = "查看设备更换错误";
|
String id = request.getParameter("id");
|
InspectionTask inspectionTask = new InspectionTask();
|
try {
|
inspectionTask = inspectionTaskService.selectById(id);
|
model.addAttribute("inspectionTask", inspectionTask);
|
} catch (Exception e) {
|
logger.error(errorMsg, e);
|
logInfoService.save(errorMsg, e.toString(), StaticKeys.LOG_XTCZ);
|
}
|
return "instask/view";
|
}
|
|
|
/**
|
* 删除设备
|
*
|
* @param
|
* @param model
|
* @param request
|
* @param redirectAttributes
|
* @return
|
*/
|
@RequestMapping(value = "del")
|
public String delete(Model model, HttpServletRequest request, RedirectAttributes redirectAttributes) {
|
String errorMsg = "删除更换设备错误";
|
InspectionTask inspectionTask = new InspectionTask();
|
try {
|
if (!StringUtils.isEmpty(request.getParameter("id"))) {
|
String[] ids = request.getParameter("id").split(",");
|
for (String id : ids) {
|
inspectionTask = inspectionTaskService.selectById(id);
|
inspectionTaskService.saveLog(request, StaticKeys.LOG_DEL, inspectionTask);
|
}
|
inspectionTaskService.deleteById(ids);
|
}
|
} catch (Exception e) {
|
logger.error(errorMsg, e);
|
logInfoService.save(errorMsg, e.toString(), StaticKeys.LOG_XTCZ);
|
}
|
return "redirect:/inspectionTask/list";
|
}
|
|
/**
|
* 查看任务详情
|
*
|
* @param model
|
* @param request
|
* @return
|
*/
|
@RequestMapping(value = "detail")
|
public String detail(Model model, HttpServletRequest request) {
|
|
try {
|
String id = request.getParameter("id");
|
List<TaskInfo> allByTaskId = taskInfoService.getAllByTaskId(id);
|
model.addAttribute("taskInfos", allByTaskId);
|
}catch (Exception e){
|
logger.error("查询任务详情错误", e);
|
logInfoService.save("查询任务详情错误", e.toString(), StaticKeys.LOG_XTCZ);
|
}
|
return "instask/taskinfo";
|
}
|
|
/**
|
* 获取两个日期相差的天数 方法二
|
*
|
* @param startDate 开始日期的字符串
|
* @param endDate 结束日期的字符串
|
* @return 相差天数,如果解析失败则返回-1
|
**/
|
private long subDaysByDate2(String startDate, String endDate) {
|
long sub;
|
try {
|
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
LocalDate start = LocalDate.parse(startDate, dateTimeFormatter);
|
LocalDate end = LocalDate.parse(endDate, dateTimeFormatter);
|
|
sub = end.toEpochDay() - start.toEpochDay();
|
} catch (DateTimeParseException e) {
|
sub = -1;
|
}
|
return sub;
|
}
|
|
private String daysAgoOrAfter(String startDate,int amount){
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
Date d = new Date();
|
try {
|
d= sdf.parse(startDate);
|
} catch (ParseException e) {
|
e.printStackTrace();
|
}
|
Calendar mon = Calendar.getInstance();
|
mon.setTime(d);
|
mon.add(Calendar.DATE,amount);
|
Date time = mon.getTime();
|
String format = sdf.format(time);
|
return format;
|
}
|
|
|
|
}
|