Commit 71d3f984 authored by suhuiguang's avatar suhuiguang

1.隐患

parent 87482ed6
......@@ -2,6 +2,9 @@ package com.yeejoin.amos.supervision.core.common.dto;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @author xixinzhao
*/
......@@ -9,34 +12,65 @@ import lombok.Data;
public class DangerDto {
/**
* 检查项记录id
* 隐患id
*/
private Long checkInputId;
private Long id;
/**
* 隐患级别
* 隐患名称
*/
private String dangerLevel;
private String name;
/**
* 隐患id
* 检查项记录id
*/
private Long dangerId;
private Long bizId;
/**
* 隐患名称
* 隐患级别
*/
private String name;
private String dangerLevel;
/**
* 状态
*/
private Long state;
private String state;
/**
* 是否删除
* 0:未删除 1:已删除
*/
private String deleted;
private Boolean deleted;
/**
* 治理方式
*/
private String governWay;
/**
* 业务类型(不同业务创建的隐患以此区分:巡检隐患、防火监督隐患、其他隐患。。。)
*/
private String bizType;
/**
* 整改期限
*/
private Date reformLimitDate;
/**
* 检查类型:1-自行检查 ;2计划检查
*/
private String checkMode;
/**
* 隐患图片列表
*/
private List<String> photoUrl;
/**
* 检查项名称
*/
private String inputItemName;
}
package com.yeejoin.amos.supervision.dao.entity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
* @author xixinzhao
*/
@EqualsAndHashCode(callSuper = true)
@Data
@Entity
@Table(name="p_hidden_danger")
@Table(name = "p_hidden_danger")
public class HiddenDanger extends BasicEntity {
private static final long serialVersionUID = 1L;
/**
* 隐患id
*/
@Column(name="latent_danger_id")
@Column(name = "latent_danger_id")
private Long latentDangerId;
/**
* 检查记录id
*/
@Column(name="check_id")
@Column(name = "check_id")
private Long checkId;
/**
* 检查项记录id
*/
@Column(name="check_input_id")
@Column(name = "check_input_id")
private Long checkInputId;
/**
* 计划id
*/
@Column(name="plan_id")
@Column(name = "plan_id")
private Long planId;
/**
* 点id
*/
@Column(name="point_id")
@Column(name = "point_id")
private Long pointId;
/**
* 隐患类型(1-防火监督检查;2-自行检查)
*/
@Column(name="danger_type")
@Column(name = "danger_type")
private Long dangerType;
/**
* 隐患类型名称
*/
@Column(name="danger_type_name")
@Column(name = "danger_type_name")
private Long dangerTypeName;
/**
* 创建者
*/
private String createBy;
/**
* 更新日期
*/
private Date updateDate;
}
package com.yeejoin.amos.supervision.business.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.supervision.business.dto.HiddenDangerExportDto;
import com.yeejoin.amos.supervision.business.dto.HiddenDangerImportDto;
import com.yeejoin.amos.supervision.business.service.intfc.IHiddenDangerService;
import com.yeejoin.amos.supervision.business.util.FileHelper;
import com.yeejoin.amos.supervision.core.common.dto.DangerDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* @author DELL
*/
@Slf4j
@RestController
@Api(tags = "隐患api")
@RequestMapping(value = "api/hidden/danger")
public class HiddenDangerController extends AbstractBaseController {
@Autowired
IHiddenDangerService iHiddenDangerService;
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "分页查询", notes = "分页查询")
@PostMapping(value = "/{planId}/page-list")
public ResponseModel pageList(
@PathVariable String planId,
@RequestParam(value = "pointId", required = false) Long pointId,
@RequestParam(value = "level", required = false) String level,
@RequestParam(value = "status", required = false) String status,
@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size) {
Page page = new Page<DangerDto>(current, size);
IPage<DangerDto> dtoList = iHiddenDangerService.pageList(page, planId, pointId, level, status);
return ResponseHelper.buildResponse(dtoList);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "查询隐患详情", notes = "查询隐患详情")
@GetMapping("/{latentDangerId}")
public ResponseModel getOne(@PathVariable String latentDangerId) {
DangerDto dangerDto = iHiddenDangerService.getOne(latentDangerId);
return ResponseHelper.buildResponse(dangerDto);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "更新隐患", notes = "更新隐患")
@PutMapping(value = "/{latentDangerId}")
public ResponseModel updateDanger(
@RequestBody DangerDto dangerDto,
@PathVariable Long latentDangerId) {
dangerDto = iHiddenDangerService.updateDanger(latentDangerId, dangerDto);
return ResponseHelper.buildResponse(dangerDto);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "导入隐患", notes = "导入隐患")
@RequestMapping(value = "/import", produces = "application/json;charset=UTF-8", method = RequestMethod.POST)
public ResponseModel importDanger(
@RequestParam(value = "planId") String planId,
@RequestParam(value = "pointId") String pointId,
@ApiParam(value = "导入数据文件", required = true) @RequestBody MultipartFile file) {
String fileName = file.getOriginalFilename();
assert fileName != null;
if (!fileName.endsWith(".xls")) {
throw new RuntimeException("文件格式不正确");
}
List<HiddenDangerImportDto> list = FileHelper.importExcel(file, 0, 1, HiddenDangerImportDto.class);
iHiddenDangerService.importDanger(planId, pointId, list);
return ResponseHelper.buildResponse("导入成功");
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "导出指定计划的隐患", notes = "导出指定计划的隐患")
@PostMapping(value = "{planId}/export")
public void exportDangerList(
@PathVariable String planId,
@RequestParam(value = "pointId", required = false) Long pointId,
@RequestParam(value = "level", required = false) String level,
@RequestParam(value = "status", required = false) String status,
HttpServletResponse response) {
List<HiddenDangerExportDto> dtoList = iHiddenDangerService.listAll(planId, pointId, level, status);
String fileName = "隐患问题清单" + System.currentTimeMillis();
FileHelper.exportExcel(dtoList, "隐患问题清单", "隐患问题清单", HiddenDangerExportDto.class, fileName + ".xls", response);
}
}
package com.yeejoin.amos.supervision.business.dao.mapper;
import com.yeejoin.amos.supervision.dao.entity.HiddenDanger;
import org.apache.ibatis.annotations.Param;
import sun.awt.SunHints;
import java.util.List;
/**
* @author DELL
*/
public interface HiddenDangerMapper extends BaseMapper {
/**
* 隐患业务关系表
* @param planId 计划id
* @param pointId 点id
* @return List<HiddenDanger>
*/
List<HiddenDanger> listByCondition(@Param(value = "planId") String planId,@Param(value = "pointId") Long pointId);
}
package com.yeejoin.amos.supervision.business.dao.repository;
import com.yeejoin.amos.supervision.dao.entity.HiddenDanger;
import org.springframework.stereotype.Repository;
@Repository("iHiddenDangerDao")
public interface IHiddenDangerDao extends BaseDao<HiddenDanger, Long> {
/**
* 按照唯一索引查询
*
* @param latentDangerId 隐患模块id
* @return HiddenDanger
*/
HiddenDanger findByLatentDangerId(Long latentDangerId);
}
package com.yeejoin.amos.supervision.business.dto;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
public class HiddenDangerImportDto {
/**
* 隐患名称
*/
private String name;
/**
* 检查项记录id
*/
private Long bizId;
/**
* 隐患级别
*/
private String dangerLevel;
/**
* 治理方式
*/
private String governWay;
/**
* 业务类型(不同业务创建的隐患以此区分:巡检隐患、防火监督隐患、其他隐患。。。)
*/
private String bizType;
/**
* 整改期限
*/
private Date reformLimitDate;
/**
* 检查类型:1-自行检查 ;2计划检查
*/
private String checkMode;
}
package com.yeejoin.amos.supervision.business.feign;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.supervision.core.common.dto.DangerDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @author DELL
*/
@FeignClient(value = "API-DANGER-API", path = "danger")
public interface DangerFeignClient {
/**
* 隐患详情
*
* @param sequenceNbr 隐患主键
* @return FeignClientResult
*/
@GetMapping(value = "/{sequenceNbr}/detail")
FeignClientResult<DangerDto> getOne(@PathVariable String sequenceNbr);
/**
* 隐患的创建或者更新
*
* @param danger 隐患对象数组
* @return FeignClientResult
*/
@PostMapping(value = "/saveOrUpdateBatch")
FeignClientResult<List<DangerDto>> saveOrUpdateBatch(@RequestBody List<Object> danger);
/**
* 隐患分页查询
*
* @param page 分页信息
* @param ids 隐患ids
* @param level 隐患级别
* @param status 隐患状态
* @return FeignClientResult
*/
@GetMapping(value = "/page-list")
FeignClientResult<IPage> pageList(Page page, @RequestParam String ids, @RequestParam(required = false) String level, @RequestParam(required = false) String status);
/**
* 查询所有的隐患
*
* @param ids 隐患ids
* @param level 隐患级别
* @param status 隐患状态
* @return FeignClientResult
*/
@GetMapping(value = "/list-all")
FeignClientResult<Object> listAll(@RequestParam String ids, @RequestParam(required = false) String level, @RequestParam(required = false) String status);
}
package com.yeejoin.amos.supervision.business.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.base.Joiner;
import com.google.common.collect.Lists;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.supervision.business.dao.mapper.HiddenDangerMapper;
import com.yeejoin.amos.supervision.business.dao.repository.IHiddenDangerDao;
import com.yeejoin.amos.supervision.business.dto.HiddenDangerExportDto;
import com.yeejoin.amos.supervision.business.dto.HiddenDangerImportDto;
import com.yeejoin.amos.supervision.business.feign.DangerFeignClient;
import com.yeejoin.amos.supervision.business.service.intfc.IHiddenDangerService;
import com.yeejoin.amos.supervision.core.common.dto.DangerDto;
import com.yeejoin.amos.supervision.dao.entity.HiddenDanger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.restful.exception.instance.DataNotFound;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author DELL
*/
@Service
public class HiddenDangerServiceImpl implements IHiddenDangerService {
@Autowired
DangerFeignClient feignClient;
@Autowired
IHiddenDangerDao iHiddenDangerDao;
@Autowired
HiddenDangerMapper hiddenDangerMapper;
@Value("${spring.application.name}")
private String applicationName;
@Override
public List<HiddenDangerExportDto> listAll(String planId, Long pointId, String level, String status) {
return null;
}
@Override
public DangerDto getOne(String latentDangerId) {
FeignClientResult<DangerDto> feignClientResult = feignClient.getOne(latentDangerId);
return feignClientResult.getResult();
}
@Override
public DangerDto updateDanger(Long latentDangerId, DangerDto dangerDto) {
HiddenDanger hiddenDanger = iHiddenDangerDao.findByLatentDangerId(latentDangerId);
if (hiddenDanger == null) {
throw new DataNotFound("该隐患数据不存在");
}
FeignClientResult<List<DangerDto>> feignClientResult = feignClient.saveOrUpdateBatch(Collections.singletonList(latentDangerId));
List<DangerDto> saveDangers = feignClientResult.getResult();
if (!saveDangers.isEmpty()) {
hiddenDanger.setUpdateDate(new Date());
iHiddenDangerDao.save(hiddenDanger);
return saveDangers.get(0);
} else {
throw new RuntimeException("更新失败");
}
}
@Override
public IPage pageList(Page page, String planId, Long pointId, String level, String status) {
List<HiddenDanger> dangers = hiddenDangerMapper.listByCondition(planId, pointId);
List<Long> dangerIds = Lists.transform(dangers, HiddenDanger::getLatentDangerId);
String dangerIdsStr = Joiner.on(",").join(dangerIds);
FeignClientResult<IPage> feignClientResult = feignClient.pageList(page, dangerIdsStr, level, status);
return feignClientResult.getResult();
}
@Override
public void importDanger(String planId, String pointId, List<HiddenDangerImportDto> list) {
List<DangerDto> dtoList = list.stream().map(s -> {
DangerDto dangerDto = new DangerDto();
Bean.copyExistPropertis(s, dangerDto);
dangerDto.setBizType(applicationName);
return dangerDto;
}).collect(Collectors.toList());
}
}
package com.yeejoin.amos.supervision.business.service.intfc;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.supervision.business.dto.HiddenDangerExportDto;
import com.yeejoin.amos.supervision.business.dto.HiddenDangerImportDto;
import com.yeejoin.amos.supervision.core.common.dto.DangerDto;
import java.util.List;
/**
* @author DELL
*/
public interface IHiddenDangerService {
/**
* 重新指定的隐患数据
*
* @param planId
* @param pointId
* @param level
* @param status
* @return
*/
List<HiddenDangerExportDto> listAll(String planId, Long pointId, String level, String status);
/**
* 隐患详情
*
* @param dangerId 隐患id
* @return DangerDto
*/
DangerDto getOne(String dangerId);
/**
* 隐患更新
*
* @param dangerId 隐患id
* @param dangerDto 隐患对象
* @return DangerDto
*/
DangerDto updateDanger(Long dangerId, DangerDto dangerDto);
/**
* 分页查询
*
* @param page 分页信息
* @param planId 计划id
* @param pointId 点id
* @param level 隐患级别
* @param status 状态
* @return
*/
IPage<DangerDto> pageList(Page page, String planId, Long pointId, String level, String status);
/**
* 导入
* @param planId 计划id
* @param pointId 点id
* @param list 数据
*/
void importDanger(String planId, String pointId, List<HiddenDangerImportDto> list);
}
......@@ -3,4 +3,11 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.amos.supervision.business.dao.mapper.HiddenDangerMapper">
<select id="listByCondition" resultType="com.yeejoin.amos.supervision.dao.entity.HiddenDanger">
select * from p_hidden_danger phd
<where>
<if test="planId !=null and planId != ''">and phd.plan_id=#{planId}</if>
<if test="pointId !=null and pointId != ''">and phd.point_id=#{pointId}</if>
</where>
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment