src/main/java/com/whyc/controller/UserWorkController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/dto/paramter/UserWorkAlarmParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/mapper/UserWorkMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/mapper/WorkAlarmMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/pojo/UserWork.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/pojo/WorkAlarm.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/UserWorkService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/WorkAlarmService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/UserWorkMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/WorkAlarmMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/whyc/controller/UserWorkController.java
New file @@ -0,0 +1,56 @@ package com.whyc.controller; import com.baomidou.mybatisplus.extension.api.R; import com.whyc.dto.Response; import com.whyc.dto.paramter.UserWorkAlarmParam; import com.whyc.mapper.WorkAlarmMapper; import com.whyc.pojo.UserInf; import com.whyc.pojo.WorkAlarm; import com.whyc.service.UserWorkService; import com.whyc.service.WorkAlarmService; import com.whyc.util.ActionUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; @RestController @RequestMapping("userwork") @Api(tags = "告警派单") @Slf4j public class UserWorkController { @Resource private UserWorkService userWorkService; @Resource private WorkAlarmService workAlarmService; @GetMapping("/searchAllByUserIdAndStatus") @ApiOperation(value = "获取告警信息") public Response searchAllByUserIdAndStatus(int pageNum,int pageSize,Integer status){ UserInf user = ActionUtil.getUser(); return workAlarmService.searchByUserIdAndStatus(pageNum,pageSize,user.getUId().intValue(),status); } @PostMapping("/updateWorkAlarm") @ApiOperation(value = "更新工单告警") public Response updateWorkAlarm(@RequestBody WorkAlarm workAlarm){ return workAlarmService.updateWorkAlarm(workAlarm); } @GetMapping("/searchStatusById") @ApiOperation("通过id获取告警状态数据") public Response searchStatusById(int id){ return workAlarmService.searchById(id); } @PostMapping("/uploadAlarmFile") @ApiOperation("上传图片") public Response uploadAlarmFile(@RequestParam MultipartFile[] files, @RequestBody UserWorkAlarmParam param){ return userWorkService.uploadAlarmFile(files,param); } } src/main/java/com/whyc/dto/paramter/UserWorkAlarmParam.java
New file @@ -0,0 +1,26 @@ package com.whyc.dto.paramter; import com.github.pagehelper.PageInfo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.ToString; @Data @AllArgsConstructor @NoArgsConstructor @ToString public class UserWorkAlarmParam { private Integer userId; private Integer status; //派工告警状态 0:待处理,1:处理中,2:已处理 private Integer stationId;//站点机房id private Integer battGroupId;//电池组id private String afterOrBefore;//上传图片为处理前还是处理后 private PageInfo pageInfo; } src/main/java/com/whyc/mapper/UserWorkMapper.java
New file @@ -0,0 +1,6 @@ package com.whyc.mapper; import com.whyc.pojo.UserWork; public interface UserWorkMapper extends CustomMapper<UserWork> { } src/main/java/com/whyc/mapper/WorkAlarmMapper.java
New file @@ -0,0 +1,16 @@ package com.whyc.mapper; import com.whyc.pojo.BattDevAlarmData; import com.whyc.pojo.BattalarmData; import com.whyc.pojo.WorkAlarm; import org.apache.ibatis.annotations.Param; import java.util.List; public interface WorkAlarmMapper extends CustomMapper<WorkAlarm> { List<WorkAlarm> searchByUserIdAndStatus(@Param("uId") int uId, @Param("status") int status); List<BattalarmData> getBattAlarm(@Param("num") int num,@Param("recordId") long recordId); List<BattDevAlarmData> getDevAlarm(@Param("num") int num,@Param("recordId") long recordId); } src/main/java/com/whyc/pojo/UserWork.java
New file @@ -0,0 +1,53 @@ package com.whyc.pojo; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import org.apache.ibatis.type.Alias; import java.util.Date; @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @ApiModel(value="UserWork对象") @Alias("UserWork") @TableName(schema = "db_user",value = "tb_user_work") public class UserWork { private Integer id; private Integer workId; private Integer userId; private String imageBefore; //处理前照片 private String imageAfter; //处理后照片 private String description; //告警描述 private String workWay; //处理方法 private String workSuggest; //意见建议 private Integer managerId; //审核人id private String note; //审核意见 private Date createTime; private Date endTime; private Date checkedTime;//审核时间 /** * TODO 建议 * 审核状态: * 0-未派发 * 1-已派发,待处理 * 2-处理中 * 3-待审核 * 4-已完成 * -1-已驳回 * */ /** * * 审核状态: * xx-1-处理中-xx * 2-待审核 * 3-已完成 * -1 :驳回 * */ private Integer checkStatus; } src/main/java/com/whyc/pojo/WorkAlarm.java
New file @@ -0,0 +1,49 @@ package com.whyc.pojo; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import org.apache.ibatis.type.Alias; import java.util.Date; import java.util.List; @Data @ApiModel(value="WorkAlarm对象") @TableName(schema = "db_user",value = "tb_work_alarm") public class WorkAlarm { private Integer id; private Integer alarmRecId;//告警id(电池组或者设备告警的num) private Long alarmRecordId;//唯一识别号(电池组或者设备告警的record_id) private Integer stationId; private String stationName; private Integer battGroupId;//告警所属电池组id private String battGroupName;//告警所属电池组id /**设备id*/ private Integer deviceId; private Integer alarmLevel; private String alarmName; private Integer managerId;//管理员id private Integer userId;//维护员id /**维护员id姓名*/ private String userName; /** * 0-未派发 * 1-已派发,待处理 * 2-处理中 * 3-已完成 */ private Integer status; //状态 /**告警发生时间*/ private Date alarmTime; /**工单生成时间*/ private Date createTime; private Date dispatchTime;//派单时间 //告警信息 private BattalarmData alarmData; //告警处理信息以及审核状态 private List<UserWork> userWorkList; private Integer flag; } src/main/java/com/whyc/service/UserWorkService.java
New file @@ -0,0 +1,109 @@ package com.whyc.service; import com.whyc.dto.Response; import com.whyc.dto.paramter.UserWorkAlarmParam; import com.whyc.mapper.UserWorkMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.system.ApplicationHome; import org.springframework.core.env.Environment; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.*; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; @Service public class UserWorkService { @Resource private UserWorkMapper mapper; @Autowired private Environment environment; public Response uploadAlarmFile(MultipartFile[] file, UserWorkAlarmParam param) { String fileDirName = ""; int configType = Integer.parseInt(environment.getProperty("configFile.type")); ApplicationHome applicationHome = new ApplicationHome(getClass()); File jarFile = applicationHome.getDir(); //测试版 if(configType==1){ fileDirName = jarFile.getParentFile().toString(); }else{ //打包版 fileDirName = jarFile.toString(); } String root=fileDirName+"/stationsrc/alarm"+ param.getStationId() + "/" + param.getAfterOrBefore() + "/"; List<String> filePathList = new ArrayList<>(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); boolean isSuccess = false; try { for (int i = 0; i < file.length && param != null; i++) { String fileFileName = file[i].getOriginalFilename(); fileFileName= fileFileName.replace(".","_"+sdf.format(new Date())+"."); String filePath = root + fileFileName; createFilefolderIFNotExist(filePath); file[i].transferTo(new File(filePath)); isSuccess = true; filePathList.add(filePath); } } catch (IOException e) { e.printStackTrace(); } if (isSuccess) { return new Response().set(1,filePathList,"上传成功"); } else { return new Response().set(0,false,"上传失败"); } } //将文件复制到指定的目录 public void copyFile(File oldFile, String newPath){ File file = new File(newPath); FileInputStream in = null; FileOutputStream out = null; try { in = new FileInputStream(oldFile); out = new FileOutputStream(file);; byte[] buffer=new byte[2097152]; int readByte = 0; while((readByte = in.read(buffer)) != -1){ out.write(buffer, 0, readByte); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if(in != null){ try { in.close(); } catch (IOException e) { e.printStackTrace(); } } if(out != null){ try { out.close(); } catch (IOException e) { e.printStackTrace(); } } } } public void createFilefolderIFNotExist(String filePath){ File f = new File(filePath); if(!f.exists()){ if(!f.getParentFile().exists()){ f.getParentFile().mkdirs(); } } } } src/main/java/com/whyc/service/WorkAlarmService.java
New file @@ -0,0 +1,91 @@ package com.whyc.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.api.R; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.whyc.dto.Response; import com.whyc.mapper.UserWorkMapper; import com.whyc.mapper.WorkAlarmMapper; import com.whyc.mapper.WorkflowAlarmMapper; import com.whyc.pojo.BattDevAlarmData; import com.whyc.pojo.BattalarmData; import com.whyc.pojo.UserWork; import com.whyc.pojo.WorkAlarm; import com.whyc.util.RSAUtil; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; @Service public class WorkAlarmService { @Resource private WorkAlarmMapper mapper; @Resource private UserWorkMapper userWorkMapper; public Response searchByUserIdAndStatus(int pageNum,int pageSize,Integer uId,Integer status){ PageHelper.startPage(pageNum,pageSize); //Integer status = null; ////查询全部列表 //if(pageInfo.getNote()==1){ // status = null; //} ////查询待处理列表 //else if(pageInfo.getNote()==2){ // status = 1; //} ////查询处理中列表 //else if(pageInfo.getNote()==3){ // status = 2; //} ////查询已完成列表 //else if(pageInfo.getNote()==4){ // status = 3; //} List<WorkAlarm> list = mapper.searchByUserIdAndStatus(uId,status); PageInfo pageInfo = new PageInfo(list); return new Response().set(1,pageInfo,"查询成功"); } public Response updateWorkAlarm(WorkAlarm workAlarm){ int flag = mapper.updateById(workAlarm); return new Response().set(1,flag>0?true:false); } public Response searchById(int id){ WorkAlarm result = mapper.selectById(id); //去告警表查询是否存在 int flag = 1; if (result.getAlarmRecordId()==null){ flag = 0; } boolean bl = alarmIsExist(result.getAlarmRecId(),result.getAlarmRecordId()); if (!bl){ flag = 0; } result.setFlag(flag); QueryWrapper<UserWork> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("workId",id); queryWrapper.orderByDesc("endTime"); List<UserWork> list = userWorkMapper.selectList(queryWrapper); result.setUserWorkList(list); return new Response().set(1,result,"查询成功"); } public boolean alarmIsExist(int num,long recordId){ boolean bl = false; List<BattalarmData> list = mapper.getBattAlarm(num,recordId); if (list != null && list.size() > 0) { bl = true; } List<BattDevAlarmData> list2 = mapper.getDevAlarm(num,recordId); if (list2 != null && list2.size() > 0) { bl = true; } return bl; } } src/main/resources/mapper/UserWorkMapper.xml
New file @@ -0,0 +1,6 @@ <?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.whyc.mapper.UserWorkMapper" > </mapper> src/main/resources/mapper/WorkAlarmMapper.xml
New file @@ -0,0 +1,38 @@ <?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.whyc.mapper.WorkAlarmMapper" > <select id="searchByUserIdAndStatus" resultType="com.whyc.pojo.WorkAlarm"> select alarm.* bInf.StationName as stationName from db_user.tb_work_alarm alarm inner join db_battinf.tb_battinf bInf on alarm.deviceId = bInf.FBSDeviceId <where> <if test="uId!=null"> and alarm.userId = #{uId} </if> <if test="status!=null"> and status = #{status} </if> </where> union select alarm.* bInf.StationName as stationName from db_user.tb_work_alarm alarm inner join db_battinf.tb_battinf bInf on alarm.battGroupId = bInf.battGroupId <where> <if test="uId!=null"> and alarm.userId = #{uId} </if> <if test="status!=null"> and status = #{status} </if> </where> </select> <select id="getBattAlarm" resultType="com.whyc.pojo.BattalarmData"> select num from db_alarm.tb_battalarm_data where num = #{num} and Record_Id = #{recordId} </select> <select id="getDevAlarm" resultType="com.whyc.pojo.BattDevAlarmData"> select num from db_alarm.tb_devalarm_data where num = #{num} and record_id = #{recordId} </select> </mapper>