package com.zy.sc.manager.controller;
|
|
import com.alibaba.fastjson.JSONArray;
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.baomidou.mybatisplus.mapper.Wrapper;
|
import com.core.annotations.ManagerAuth;
|
import com.core.common.Cools;
|
import com.core.common.DateUtils;
|
import com.core.common.R;
|
import com.core.common.SnowflakeIdWorker;
|
import com.core.exception.CoolException;
|
import com.zy.sc.common.service.GeoService;
|
import com.zy.sc.common.web.BaseController;
|
import com.zy.sc.manager.controller.param.MobileIssueParam;
|
import com.zy.sc.manager.entity.Issue;
|
import com.zy.sc.manager.entity.IssueType;
|
import com.zy.sc.manager.service.IssueService;
|
import com.zy.sc.manager.service.IssueTypeService;
|
import com.zy.sc.system.entity.Host;
|
import com.zy.sc.system.service.HostService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* Created by vincent on 2021/12/20
|
*/
|
@Slf4j
|
@RestController
|
@RequestMapping("app")
|
public class AppController extends BaseController {
|
|
public static final String REGEX_MOBILE = "^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(17[013678])|(18[0,5-9]))\\d{8}$";
|
|
@Autowired
|
private HostService hostService;
|
@Autowired
|
private IssueTypeService issueTypeService;
|
@Autowired
|
private IssueService issueService;
|
@Autowired
|
private SnowflakeIdWorker snowflakeIdWorker;
|
@Autowired
|
private GeoService geoService;
|
|
@RequestMapping("/host/list/auth")
|
@ManagerAuth
|
public R hostList(){
|
Long hostId = getHostId();
|
Wrapper<Host> wrapper = new EntityWrapper<Host>().orderBy("id");
|
if (hostId != null) {
|
wrapper.eq("id", hostId);
|
}
|
List<Host> hostList = hostService.selectList(wrapper);
|
return R.ok().add(hostList);
|
}
|
|
@RequestMapping("/issue/type/auth")
|
public R issueType(){
|
List<IssueType> issueTypes = issueTypeService.selectList(new EntityWrapper<IssueType>().orderBy("id"));
|
return R.ok().add(issueTypes);
|
}
|
|
@RequestMapping("/issue/save/auth")
|
@ManagerAuth(memo = "故障上报")
|
public R issueSave(MobileIssueParam param){
|
if (Cools.isEmpty(param.getHostName())) {
|
return R.error("请选择所属项目");
|
}
|
Host host = hostService.selectByName(param.getHostName());
|
if (Cools.isEmpty(param.getIssueTypeName())) {
|
return R.error("请选择故障类型");
|
}
|
IssueType issueType = issueTypeService.selectByName(param.getIssueTypeName());
|
if (Cools.isEmpty(param.getTel())) {
|
return R.error("请输入联系方式");
|
}
|
if (Cools.isEmpty(param.getTitle())) {
|
return R.error("请输入问题概述");
|
}
|
Date now = new Date();
|
Date startTime = DateUtils.convert(param.getStartTime(), DateUtils.yyyyMMdd_F);
|
// 保存故障
|
Issue issue = new Issue(
|
String.valueOf(snowflakeIdWorker.nextId()), // 故障编号
|
host.getId(), // 所属项目
|
issueType.getId(), // 故障类型
|
param.getTitle(), // 问题概述
|
null, // 故障原因
|
null, // 解决办法
|
null, // 文件列表
|
JSONArray.toJSONString(param.getImgArr()), // 图片
|
startTime, // 发生日期
|
null, // 处理日期
|
null, // 更新日期
|
param.getDiscoverer(), // 发现人
|
param.getTel(), // 联系方式
|
null, // 供应商
|
null, //
|
1, // 状态
|
getUserId(), // 添加人员
|
now, // 添加时间
|
getUserId(), // 修改人员
|
now, // 修改时间
|
param.getMemo() // 备注
|
);
|
if (!issueService.insert(issue)) {
|
throw new CoolException("反馈失败,请联系管理员");
|
}
|
return R.ok("问题上报成功");
|
}
|
//
|
// @RequestMapping("/sensor/list/auth")
|
// @ManagerAuth
|
// public R sensorList(@RequestParam(required = false) String condition){
|
// Wrapper<Sensor> wrapper = new EntityWrapper<Sensor>()
|
// .like("uuid", condition)
|
// .orderBy("sensor_type").orderBy("create_time");
|
// Long hostId = getHostId();
|
// if (hostId != null) {
|
// wrapper.eq("host_id", hostId);
|
// }
|
// List<Sensor> sensors = sensorService.selectList(wrapper);
|
// List<AppSensorTypeVo> result = new ArrayList<>();
|
// Set<Long> sensorTypeSet = new HashSet<>();
|
// for (Sensor sensor : sensors) {
|
// AppSensorVo sensorVo = new AppSensorVo();
|
// sensorVo.setSensorId(sensor.getId());
|
// sensorVo.setUuid(sensor.getUuid());
|
// String addr = sensor.getProvince()+sensor.getCity()+sensor.getDistrict();
|
//// String addr = sensor.getProvince()+","+sensor.getCity()+","+sensor.getDistrict();
|
// if (Cools.isEmpty(addr)) {
|
// addr = "未知定位";
|
// }
|
// sensorVo.setAddr(addr);
|
//
|
// if (!sensorTypeSet.contains(sensor.getSensorType())) {
|
// sensorTypeSet.add(sensor.getSensorType());
|
// SensorType sensorType = sensorTypeService.selectById(sensor.getSensorType());
|
// AppSensorTypeVo vo = new AppSensorTypeVo();
|
// vo.setSensorTypeFlag(sensorType.getFlag());
|
// vo.setSensorTypeId(sensor.getSensorType());
|
// vo.setSensorTypeName(sensorType.getName());
|
// result.add(vo);
|
// vo.getSensors().add(sensorVo);
|
// } else {
|
// for (AppSensorTypeVo vo : result) {
|
// if (vo.getSensorTypeId().equals(sensor.getSensorType())) {
|
// vo.getSensors().add(sensorVo);
|
// }
|
// }
|
// }
|
// }
|
// return R.ok().add(result);
|
// }
|
//
|
// @RequestMapping("/sensor/detl/auth")
|
// @ManagerAuth
|
// public R sensorDetl(@RequestParam Long sensorId){
|
// return R.ok().add(sensorService.selectById(sensorId));
|
// }
|
|
|
|
}
|