消防检查修改

main
zhaokai 2026-02-04 09:38:12 +08:00
parent 56a3e093eb
commit b25e5954a2
52 changed files with 384 additions and 105 deletions

View File

@ -20,7 +20,7 @@ spring:
file-extension: yml
shared-configs:
- config-common.yml
# - config-port.yml
- config-port.yml
- config-mq.yml
- config-log.yml
- config-sdk-server.yml
@ -36,5 +36,3 @@ spring:
discovery:
server-addr: ${spring.cloud.nacos.config.server-addr}
namespace: ${spring.cloud.nacos.config.namespace}
server:
port: 8080

View File

@ -69,7 +69,7 @@ public class FireCheckStandardController {
}
@ApiOperation("消防检查标准-删除多个")
@PostMapping("/remove/ids")
@GetMapping("/remove/ids")
public Response removeBatch(@RequestParam Long[] ids) {
fireCheckStandardService.removeBatch(ids);
return SingleResponse.buildSuccess();

View File

@ -106,7 +106,7 @@ public class FireDeviceController {
@ApiOperation("H5s扫码-点位分布-消防器材分页查询,(H5扫码点位分布可使用)")
@PostMapping("/pageByPointId")
public PageResponse<FireDeviceCO> pageByPointId(@RequestBody FireDevicePageQry qry) {
return fireDeviceService.listPage(qry);
return fireDeviceService.pageByPointId(qry);
}
}

View File

@ -46,7 +46,7 @@ public class FirePointController {
}
@ApiOperation("根据消防区域获取消防点位所有")
@PostMapping("/listByFireRegionId/{fireRegionId}")
@GetMapping("/listByFireRegionId/{fireRegionId}")
public MultiResponse<FirePointCO> listByFireRegionId(@PathVariable("fireRegionId") String fireRegionId) {
return firePointService.listByFireRegionId(fireRegionId);
}

View File

@ -5,6 +5,7 @@ import com.zcloud.fire.check.domain.gateway.FireDeviceGateway;
import com.zcloud.fire.check.domain.model.FireDeviceE;
import com.zcloud.fire.check.dto.FireDeviceAddCmd;
import com.zcloud.fire.check.persistence.repository.FireDeviceRepository;
import com.zcloud.fire.check.persistence.repository.FireRegionRepository;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
@ -22,6 +23,7 @@ import org.springframework.transaction.annotation.Transactional;
public class FireDeviceAddExe {
private final FireDeviceGateway fireDeviceGateway;
private final FireDeviceRepository fireDeviceRepository;
private final FireRegionRepository fireRegionRepository;
@Transactional(rollbackFor = Exception.class)
public boolean execute(FireDeviceAddCmd cmd) {
@ -29,6 +31,8 @@ public class FireDeviceAddExe {
if (fireDeviceRepository.existsByDeviceCode(cmd.getFireDeviceCode())) {
throw new BizException("消防器材编码已存在");
}
//校验区域
fireRegionRepository.checkRegion(cmd.getFireRegionId());
FireDeviceE fireDeviceE = new FireDeviceE();
BeanUtils.copyProperties(cmd, fireDeviceE);

View File

@ -5,6 +5,7 @@ import com.zcloud.fire.check.domain.gateway.FirePointGateway;
import com.zcloud.fire.check.domain.model.FirePointE;
import com.zcloud.fire.check.dto.FirePointAddCmd;
import com.zcloud.fire.check.persistence.repository.FirePointRepository;
import com.zcloud.fire.check.persistence.repository.FireRegionRepository;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
@ -22,6 +23,8 @@ import org.springframework.transaction.annotation.Transactional;
public class FirePointAddExe {
private final FirePointGateway firePointGateway;
private final FirePointRepository firePointRepository;
private final FireRegionRepository fireRegionRepository;
@Transactional(rollbackFor = Exception.class)
public boolean execute(FirePointAddCmd cmd) {
@ -29,6 +32,8 @@ public class FirePointAddExe {
if (firePointRepository.existsByFirePointCode(cmd.getFirePointCode())) {
throw new BizException("点位编码已存在");
}
//校验区域
fireRegionRepository.checkRegion(cmd.getFireRegionId());
FirePointE firePointE = new FirePointE();
BeanUtils.copyProperties(cmd, firePointE);
boolean res = false;

View File

@ -56,6 +56,7 @@ public class FireCheckListQueryExe {
private final FireCheckRecordDeviceCoConvertor fireCheckRecordDeviceCoConvertor;
private final FireCheckRecordHiddenRepository fireCheckRecordHiddenRepository;
private final FireCheckRecordHiddenCoConvertor fireCheckRecordHiddenCoConvertor;
private final FireCheckListUserCoConvertor fireCheckListUserCoConvertor;
@DubboReference
private ZcloudHiddenFacade zcloudHiddenFacade;
@ -70,6 +71,22 @@ public class FireCheckListQueryExe {
Map<String, Object> params = PageQueryHelper.toHashMap(fireCheckListPageQry);
PageResponse<FireCheckListDO> pageResponse = fireCheckListRepository.listPage(params);
List<FireCheckListCO> examCenterCOS = fireCheckListCoConvertor.converDOsToCOs(pageResponse.getData());
//按照负责人搜索的话,需要补充名字
if(StringUtils.isNotEmpty(fireCheckListPageQry.getUserName())){
//补充完整的用户负责人
// examCenterCOS.stream()
List<String> fireCheckIdList = examCenterCOS.stream().map(FireCheckListCO::getFireCheckId).collect(Collectors.toList());
List<FireCheckListUserDO> fireCheckListUserDOList = fireCheckListUserRepository.getListUserNameByFireCheckIdList(fireCheckIdList);
//fireCheckListUserDOList转换为key value map
Map<String, String> fireCheckListUserDONameMap = fireCheckListUserDOList.stream()
.collect(Collectors.groupingBy(
FireCheckListUserDO::getFireCheckId,
Collectors.mapping(FireCheckListUserDO::getUserName, Collectors.joining(","))));
examCenterCOS.forEach(fireCheckListCO->{
fireCheckListCO.setUserName(fireCheckListUserDONameMap.getOrDefault(fireCheckListCO.getFireCheckId(), ""));
});
}
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
@ -93,6 +110,10 @@ public class FireCheckListQueryExe {
List<FireDeviceDO> fireDeviceDOList = fireDeviceRepository.getAllList(params);
List<FireDeviceCO> examCenterCOS = fireDeviceCoConvertor.converDOsToCOs(fireDeviceDOList);
fireCheckListCO.setFireDeviceCOList(examCenterCOS);
List<FireCheckListUserDO> fireCheckListUserDOList = fireCheckListUserRepository.getListByFireCheckId(fireCheckListDO.getFireCheckId());
List<FireCheckListUserCO> fireCheckListUserCOS = fireCheckListUserCoConvertor.converDOsToCOs(fireCheckListUserDOList);
fireCheckListCO.setFireCheckListUserCOList(fireCheckListUserCOS);
return fireCheckListCO;
}

View File

@ -46,6 +46,8 @@ public class FireCheckRecordQueryExe {
private final CorpInfoRepository corpInfoRepository;
private final CorpInfoCoConvertor corpInfoCoConvertor;
private final FireCheckListUserRepository fireCheckListUserRepository;
private final FireCheckRecordPointRepository fireCheckRecordPointRepository;
/**
*
*
@ -103,6 +105,7 @@ public class FireCheckRecordQueryExe {
List<FireCheckListUserDO> listUserByFireCheckIdList = fireCheckListUserRepository.getListUserByFireCheckIdList(Arrays.asList(fireCheckRecordDO.getFireCheckId()));
if(CollUtil.isNotEmpty(listUserByFireCheckIdList)){
fireCheckRecordCO.setResponsibleUserNameList(listUserByFireCheckIdList.stream().map(FireCheckListUserDO::getUserName).collect(Collectors.joining(",")));
fireCheckRecordCO.setResponsiblePostNameList(listUserByFireCheckIdList.stream().map(FireCheckListUserDO::getPostName).collect(Collectors.joining(",")));
}
//补充其他隐患信息
@ -177,6 +180,22 @@ public class FireCheckRecordQueryExe {
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
PageResponse<FireCheckRecordDO> pageResponse = fireCheckRecordRepository.getCheckRecordPageH5(params);
List<FireCheckRecordCO> examCenterCOS = fireCheckRecordCoConvertor.converDOsToCOs(pageResponse.getData());
//组装点位名称 和区域名称
List<String> fireCheckRecordIdList = examCenterCOS.stream().map(FireCheckRecordCO::getFireRecordId).collect(Collectors.toList());
List<FireCheckRecordPointDO> fireCheckRecordPointDOList =fireCheckRecordPointRepository.getCheckRecordPointListByCheckRecordIds(fireCheckRecordIdList);
//按照fireRecordId进行分组
Map<String, FireCheckRecordPointDO> fireCheckRecordPointDOMap = fireCheckRecordPointDOList.stream()
.collect(Collectors.toMap(
FireCheckRecordPointDO::getFireRecordId,
Function.identity(),
(existing, replacement) -> existing // 保留第一个值,丢弃后续重复项
));
examCenterCOS.forEach(info -> {
info.setFirePointNameList(fireCheckRecordPointDOMap.get(info.getFireRecordId()).getFirePointName());
info.setFireRegionNameList(fireCheckRecordPointDOMap.get(info.getFireRecordId()).getFireRegionName());
});
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
}

View File

@ -107,8 +107,10 @@ public class FireDeviceQueryExe {
fireDevicePageQry.setIds(idList);
fireDevicePageQry.setPageSize(100000);
PageResponse<FireDeviceCO> fireDeviceCOPageResponse = execute(fireDevicePageQry);
List<FireDeviceCO> data = fireDeviceCOPageResponse.getData();
Map<String, Object> params = PageQueryHelper.toHashMap(fireDevicePageQry);
List<FireDeviceDO> fireDeviceDOList = fireDeviceRepository.getAllList(params);
List<FireDeviceCO> data = fireDeviceCoConvertor.converDOsToCOs(fireDeviceDOList);
List<FireDeviceExcelExportEntity> listManagerStatisticsExcelExportEntityList = fireDeviceCoConvertor.converCOsToExcelEntitys(data);
FireDeviceE fireDeviceE = new FireDeviceE();
fireDeviceE.exportFireDeviceTable(httpServletResponse, listManagerStatisticsExcelExportEntityList);
@ -208,5 +210,28 @@ public class FireDeviceQueryExe {
}
public PageResponse<FireDeviceCO> pageByPointId(FireDevicePageQry fireDevicePageQry) {
Map<String, Object> params = PageQueryHelper.toHashMap(fireDevicePageQry);
PageResponse<FireDeviceDO> pageResponse = fireDeviceRepository.pageByPointId(params);
if (CollUtil.isEmpty(pageResponse.getData())) {
return PageResponse.of(null, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
List<FireDeviceCO> examCenterCOS = fireDeviceCoConvertor.converDOsToCOs(pageResponse.getData());
//拼接消防器材检查标准获取list
List<String> fireDeviceTypeList = examCenterCOS.stream().map(FireDeviceCO::getFireDeviceType).collect(Collectors.toList());
//根据list查询消防器材检查标准
List<FireCheckStandardDO> fireCheckStandardDOList = fireCheckStandardRepository.getCheckStandardList(fireDeviceTypeList);
if (CollUtil.isNotEmpty(fireCheckStandardDOList)) {
List<FireCheckStandardCO> fireCheckStandardCOList = fireCheckStandardCoConvertor.converDOsToCOs(fireCheckStandardDOList);
Map<String, List<FireCheckStandardCO>> fireCheckStandardMap = fireCheckStandardCOList.stream()
.collect(Collectors.groupingBy(FireCheckStandardCO::getFireDeviceType));
examCenterCOS.forEach(info -> {
info.setFireCheckStandardList(fireCheckStandardMap.get(info.getFireDeviceType()));
});
}
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
}

View File

@ -1,19 +1,28 @@
package com.zcloud.fire.check.command.query;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.cola.dto.MultiResponse;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.nacos.api.config.annotation.NacosValue;
import com.zcloud.fire.check.command.convertor.FirePointCoConvertor;
import com.zcloud.fire.check.domain.config.PointConfig;
import com.zcloud.fire.check.domain.model.FirePointE;
import com.zcloud.fire.check.dto.FirePointPageQry;
import com.zcloud.fire.check.dto.clientobject.FirePointCO;
import com.zcloud.fire.check.dto.clientobject.FireRegionCO;
import com.zcloud.fire.check.persistence.dataobject.FirePointDO;
import com.zcloud.fire.check.persistence.repository.FireCheckRecordPointRepository;
import com.zcloud.fire.check.persistence.repository.FireDeviceRepository;
import com.zcloud.fire.check.persistence.repository.FirePointRepository;
import com.zcloud.gbscommon.excelEntity.FirePointExcelExportEntity;
import com.zcloud.gbscommon.excelEntity.ListManagerStatisticExcelExportEntity;
import com.zcloud.gbscommon.zcloudimgfiles.facade.ZcloudImgFilesFacade;
import com.zcloud.gbscommon.zcloudimgfiles.request.ZcloudImgFilesQryCmd;
import com.zcloud.gbscommon.zcloudimgfiles.response.ZcloudImgFilesCO;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
@ -22,6 +31,7 @@ import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
@ -33,14 +43,18 @@ import java.util.stream.Collectors;
*/
@Component
@AllArgsConstructor
@Slf4j
public class FirePointQueryExe {
private final FirePointRepository firePointRepository;
private final FirePointCoConvertor firePointCoConvertor;
private final FireDeviceRepository fireDeviceRepository;
private final FireCheckRecordPointRepository fireCheckRecordPointRepository;
// @NacosValue("${point:url:prefix}")
// private String pointUrlPrefix;
@Autowired
private PointConfig pointConfig;
@DubboReference(check = false)
private ZcloudImgFilesFacade zcloudImgFilesFacade;
/**
*
*
@ -68,6 +82,30 @@ public class FirePointQueryExe {
}
FirePointCO firePointCO = new FirePointCO();
BeanUtils.copyProperties(firePointDO, firePointCO);
//获取点位检查的最新三个检查点位id
List<String> fireRecordPointIdList = fireCheckRecordPointRepository.getLastThreeRecord(firePointCO.getFirePointId());
if(CollUtil.isNotEmpty(fireRecordPointIdList)){
ZcloudImgFilesQryCmd zcloudImgFilesQryCmd = new ZcloudImgFilesQryCmd();
String[] foreignKeys = fireRecordPointIdList.toArray(new String[0]);
zcloudImgFilesQryCmd.setInForeignKey(foreignKeys);
log.info("调用统一用户获取点位最新图片请求:{}", JSONUtil.toJsonStr(zcloudImgFilesQryCmd));
try{
MultiResponse<ZcloudImgFilesCO> zcloudImgFilesCOs = zcloudImgFilesFacade.listAll(zcloudImgFilesQryCmd);
log.info("调用统一用户获取点位最新图片返回:{}", JSONUtil.toJsonStr(zcloudImgFilesCOs));
List<ZcloudImgFilesCO> data = zcloudImgFilesCOs.getData();
if(CollUtil.isNotEmpty(data)){
List<String> urlList = data.stream()
.filter(Objects::nonNull) // 过滤掉 null 元素
.sorted((o1, o2) -> o2.getCreateTime().compareTo(o1.getCreateTime()))
.limit(3)
.map(ZcloudImgFilesCO::getFilePath)
.collect(Collectors.toList());
firePointCO.setUrlList(urlList);
}
}catch (Exception e){
log.error("调用统一用户获取点位最新图片异常:", e);
}
}
return firePointCO;
}
@ -83,7 +121,7 @@ public class FirePointQueryExe {
List<FirePointExcelExportEntity> listManagerStatisticsExcelExportEntityList = firePointCoConvertor.converCOsToExcelEntitys(data);
FirePointE firePointE = new FirePointE();
firePointE.exportFirePointTable(httpServletResponse, listManagerStatisticsExcelExportEntityList);
firePointE.exportFirePointTable(httpServletResponse, listManagerStatisticsExcelExportEntityList,pointConfig.getPrefix() );
}

View File

@ -84,6 +84,9 @@ public class FireDeviceServiceImpl implements FireDeviceServiceI {
return fireDeviceQueryExe.corpStatisticslist(qry);
}
@Override
public PageResponse<FireDeviceCO> pageByPointId(FireDevicePageQry qry) {
return fireDeviceQueryExe.pageByPointId(qry);
}
}

View File

@ -37,5 +37,6 @@ public interface FireDeviceServiceI {
PageResponse<CorpStatisticsCO> corpStatisticslist(CorpStatisticsPageQry qry);
PageResponse<FireDeviceCO> pageByPointId(FireDevicePageQry qry);
}

View File

@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.checkerframework.checker.units.qual.A;
import java.util.List;
/**
* web-client
@ -43,5 +45,7 @@ public class FireCheckListPageQry extends PageQuery {
@ApiModelProperty(value = "检查状态1:待检查2:已检查", name = "checkStatus")
private Integer checkStatus;
@ApiModelProperty(value = "点检表状态: 禁用1,启用0, 已删除2", name = "checkStatus")
private List<Integer> stateList;
}

View File

@ -4,6 +4,8 @@ import com.alibaba.cola.dto.PageQuery;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* web-client
@ -24,6 +26,8 @@ public class FireCheckListRecordPageQry extends PageQuery {
* - `le`:
* - `ne`: SQL!=
*/
@ApiModelProperty(value = "企业id")
private Long corpinfoId;
//消防点位检查表名称
@ApiModelProperty(value = "消防点位检查表名称")
private String fireCheckName;
@ -43,5 +47,7 @@ public class FireCheckListRecordPageQry extends PageQuery {
@ApiModelProperty(value = "状态(禁用1启用0, 已删除2)", name = "listManagerStatus")
private String state;
@ApiModelProperty(value = "点检表状态: 禁用1,启用0, 已删除2", name = "checkStatus")
private List<Integer> stateList;
}

View File

@ -35,8 +35,8 @@ public class FireCheckRecordDeviceAddCmd {
@ApiModelProperty(value = "是否检查过0已经检查1未检查2已打回", name = "checkedFlag")
private Integer checkedFlag;
@ApiModelProperty(value = "0合格1不合格2不涉及", name = "normalFlag", required = true)
@NotNull(message = "0合格1不合格2不涉及不能为空")
@ApiModelProperty(value = "0合格1不合格", name = "normalFlag", required = true)
@NotNull(message = "0合格1不合格不能为空")
private Integer normalFlag;
@ApiModelProperty(value = "经度", name = "longitude", required = true)

View File

@ -29,5 +29,8 @@ public class FireCheckStandardPageQry extends PageQuery {
@ApiModelProperty(value = "消防器材类型", name = "eqFireDeviceType")
private String eqFireDeviceType;
@ApiModelProperty(value = "消防器材名称", name = "likeDeviceName")
private String likeDeviceName;
}

View File

@ -11,6 +11,7 @@ import org.codehaus.jackson.annotate.JsonProperty;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
@ -52,12 +53,12 @@ public class FireDeviceAddCmd extends Command {
private String fireDeviceCode;
@ApiModelProperty(value = "有效期开始时间", name = "validityStartTime")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime validityStartTime;
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate validityStartTime;
@ApiModelProperty(value = "有效期结束时间", name = "validityEndTime")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime validityEndTime;
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate validityEndTime;
@ApiModelProperty(value = "存放地点", name = "storageLocation", required = true)
@NotEmpty(message = "存放地点不能为空")

View File

@ -27,7 +27,7 @@ public class FireDevicePageQry extends PageQuery {
* - `ne`: SQL!=
*/
@ApiModelProperty(value = "消防器材主键ID", name = "ids",hidden = true)
private List<Long> ids;
private List<Long> ids;
@ApiModelProperty(value = "消防器材类型", name = "fireDeviceType")
private String fireDeviceType;

View File

@ -10,6 +10,7 @@ import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
@ -47,11 +48,11 @@ public class FireDeviceUpdateCmd extends Command {
@NotEmpty(message = "器材编号不能为空")
private String fireDeviceCode;
@ApiModelProperty(value = "有效期开始时间", name = "validityStartTime")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime validityStartTime;
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate validityStartTime;
@ApiModelProperty(value = "有效期结束时间", name = "validityEndTime")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime validityEndTime;
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate validityEndTime;
@ApiModelProperty(value = "存放地点", name = "storageLocation", required = true)
@NotEmpty(message = "存放地点不能为空")
private String storageLocation;

View File

@ -39,7 +39,8 @@ public class FireRegionUpdateCmd extends Command {
private Long departmentId;
@ApiModelProperty(value = "0启用,1禁用", name = "state")
private Integer state;
@ApiModelProperty(value = "描述")
private String remarks;
}

View File

@ -81,5 +81,8 @@ public class FireCheckListCO extends ClientObject {
//周期检查次数
@ApiModelProperty(value = "周期检查次数")
private Long checkCycleCount;
@ApiModelProperty(value = "检查人员列表")
private List<FireCheckListUserCO> fireCheckListUserCOList;
}

View File

@ -4,6 +4,7 @@ import com.alibaba.cola.dto.ClientObject;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@ -14,7 +15,7 @@ import java.time.LocalDateTime;
* @Date 2025-12-11 15:32:49
*/
@Data
public class FireCheckListUserCO extends ClientObject {
public class FireCheckListUserCO implements Serializable {
//主键
@ApiModelProperty(value = "主键")
private Long id;
@ -33,41 +34,6 @@ public class FireCheckListUserCO extends ClientObject {
//负责人
@ApiModelProperty(value = "负责人")
private Long userId;
//乐观锁
@ApiModelProperty(value = "乐观锁")
private Integer version;
//创建人
@ApiModelProperty(value = "创建人")
private Long createId;
//创建人姓名
@ApiModelProperty(value = "创建人姓名")
private String createName;
//创建时间
@ApiModelProperty(value = "创建时间")
private LocalDateTime createTime;
//更新人
@ApiModelProperty(value = "更新人")
private Long updateId;
//修改人名称
@ApiModelProperty(value = "修改人名称")
private String updateName;
//更新时间
@ApiModelProperty(value = "更新时间")
private LocalDateTime updateTime;
//描述
@ApiModelProperty(value = "描述")
private String remarks;
//是否删除
@ApiModelProperty(value = "是否删除")
private String deleteEnum;
//租户ID
@ApiModelProperty(value = "租户ID")
private Long tenantId;
//机构ID
@ApiModelProperty(value = "机构ID")
private Long orgId;
//环境
@ApiModelProperty(value = "环境")
private String env;
}

View File

@ -72,8 +72,8 @@ public class FireCheckPointDeviceListCO implements Serializable {
private String fireDeviceType;
@ApiModelProperty(value = "是否检查过0已经检查1未检查2已打回")
private Integer checkedFlag;
//0合格1不合格2不涉及
@ApiModelProperty(value = "0合格1不合格2不涉及")
//0合格1不合格
@ApiModelProperty(value = "0合格1不合格")
private Integer normalFlag;
//打回原因
@ApiModelProperty(value = "打回原因")

View File

@ -1,6 +1,7 @@
package com.zcloud.fire.check.dto.clientobject;
import com.alibaba.cola.dto.ClientObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -92,5 +93,11 @@ public class FireCheckRecordCO {
private List<FireCheckRecordHiddenCO> fireCheckRecordHiddenList;
//检查内容
private List<FireCheckRecordDeviceCO> fireCheckRecordDeviceList;
@ApiModelProperty(value = "消防点位名称")
private String firePointNameList;
@ApiModelProperty(value = "消防区域名称")
private String fireRegionNameList;
}

View File

@ -35,8 +35,8 @@ public class FireCheckRecordDeviceCO {
//是否检查过0已经检查1未检查2已打回
@ApiModelProperty(value = "是否检查过0已经检查1未检查2已打回")
private Integer checkedFlag;
//0合格1不合格2不涉及
@ApiModelProperty(value = "0合格1不合格2不涉及")
//0合格1不合格
@ApiModelProperty(value = "0合格1不合格")
private Integer normalFlag;
//打回原因
@ApiModelProperty(value = "打回原因")

View File

@ -62,6 +62,8 @@ public class FireCheckRecordInfoCO {
private String userNameList;
@ApiModelProperty(value = "消防点检负责人用户名称逗号分隔")
private String responsibleUserNameList;
@ApiModelProperty(value = "消防点检负责人岗位名称逗号分隔")
private String responsiblePostNameList;
@ApiModelProperty(value = "消防点检负责人部门")
private String departmentName;

View File

@ -6,6 +6,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
@ -47,12 +48,12 @@ public class FireDeviceCO {
private String fireDeviceCode;
//有效期开始时间
@ApiModelProperty(value = "有效期开始时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime validityStartTime;
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate validityStartTime;
//有效期结束时间
@ApiModelProperty(value = "有效期结束时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime validityEndTime;
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate validityEndTime;
//存放地点
@ApiModelProperty(value = "存放地点")
private String storageLocation;
@ -97,6 +98,8 @@ public class FireDeviceCO {
//描述
@ApiModelProperty(value = "描述")
private String remarks;
@ApiModelProperty(value = "企业名称")
private String corpName;
//消防器材检查标准列表
@ApiModelProperty(value = "消防器材检查标准列表")
private List<FireCheckStandardCO> fireCheckStandardList;

View File

@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
/**
@ -80,5 +81,7 @@ public class FirePointCO extends ClientObject {
@ApiModelProperty(value = "描述")
private String remarks;
@ApiModelProperty(value = "图片地址")
private List<String> urlList;
}

View File

@ -0,0 +1,15 @@
package com.zcloud.fire.check.domain.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "point.url")
@RefreshScope
@Data
public class PointConfig {
private String prefix;
}

View File

@ -28,7 +28,7 @@ public class FireCheckRecordDeviceE extends BaseE {
private String fireRecordPointId;
//是否检查过0已经检查1未检查2已打回
private Integer checkedFlag;
//0合格1不合格2不涉及
//0合格1不合格
private Integer normalFlag;
//打回原因
private String hitBackTheReason;

View File

@ -54,9 +54,9 @@ public class FireDeviceE extends BaseE {
//器材编号
private String fireDeviceCode;
//有效期开始时间
private LocalDateTime validityStartTime;
private LocalDate validityStartTime;
//有效期结束时间
private LocalDateTime validityEndTime;
private LocalDate validityEndTime;
//存放地点
private String storageLocation;
//乐观锁
@ -201,8 +201,7 @@ public class FireDeviceE extends BaseE {
// 定义输入格式
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy年M月d日");
LocalDate date = LocalDate.parse(entity.getValidityStartTime(), inputFormatter);
LocalDateTime dateTime = date.atTime(0, 0, 0);
fireDeviceE.setValidityStartTime(dateTime);
fireDeviceE.setValidityStartTime(date);
} catch (DateTimeParseException e) {
errList.add("第" + (i + 2) + "行有效期开始时间格式错误");
continue;
@ -215,8 +214,7 @@ public class FireDeviceE extends BaseE {
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("yyyy年M月d日");
// 解析日期并设置时间为00:00:00
LocalDate date = LocalDate.parse(entity.getValidityEndTime(), inputFormatter);
LocalDateTime dateTime = date.atTime(0, 0, 0);
fireDeviceE.setValidityEndTime(dateTime);
fireDeviceE.setValidityEndTime(date);
} catch (DateTimeParseException e) {
errList.add("第" + (i + 2) + "行有效期结束时间格式错误");
continue;

View File

@ -1,5 +1,6 @@
package com.zcloud.fire.check.domain.model;
import cn.hutool.json.JSONObject;
import com.alibaba.cola.exception.BizException;
import com.baomidou.mybatisplus.annotation.TableField;
import com.google.zxing.BarcodeFormat;
@ -89,14 +90,17 @@ public class FirePointE extends BaseE {
}
}
public void exportFirePointTable(HttpServletResponse httpServletResponse, List<FirePointExcelExportEntity> listFirePointExcelExportEntityList) {
public void exportFirePointTable(HttpServletResponse httpServletResponse, List<FirePointExcelExportEntity> listFirePointExcelExportEntityList,String pointUrlPrefix) {
try {
//获取当前年月日时分秒字符串
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String dateTimeString = sdf.format(new Date());
listFirePointExcelExportEntityList.forEach(listManagerStatisticsExcelExportEntity -> {
listManagerStatisticsExcelExportEntity.setCheckQrcode(generateQrCodeImage("http://192.168.20.240:9000/qydist/#/firefighting/points"));
listManagerStatisticsExcelExportEntity.setViewQrcode(generateQrCodeImage("http://192.168.20.240:9000/qydist/#/firefighting/points"));
JSONObject jsonObject = new JSONObject();
jsonObject.put("firePointId", listManagerStatisticsExcelExportEntity.getFirePointId());
listManagerStatisticsExcelExportEntity.setCheckQrcode(generateQrCodeImage(jsonObject.toString()));
listManagerStatisticsExcelExportEntity.setViewQrcode(generateQrCodeImage(pointUrlPrefix+"/Container/QrCode/PartQrCode/List?firePointId="+listManagerStatisticsExcelExportEntity.getFirePointId()));
});
ExcelUtils.exportExcel(httpServletResponse, FirePointExcelExportEntity.class,dateTimeString, listFirePointExcelExportEntityList);
}catch (Exception e) {

View File

@ -37,6 +37,9 @@ public class FireCheckListUserDO extends BaseDO {
@ApiModelProperty(value = "负责人姓名")
@TableField(exist = false)
private String userName;
@ApiModelProperty(value = "负责人岗位姓名")
@TableField(exist = false)
private String postName;
public FireCheckListUserDO(String fireCheckListUserId) {
this.fireCheckListUserId = fireCheckListUserId;

View File

@ -55,15 +55,6 @@ public class FireCheckRecordDO extends BaseDO {
@ApiModelProperty(value = "签字url")
private String signUrl;
@ApiModelProperty(value = "消防点位名称")
@TableField(exist = false)
private String firePointNameList;
@ApiModelProperty(value = "消防区域名称")
@TableField(exist = false)
private String fireRegionNameList;
@ApiModelProperty(value = "涉及点位数")
@TableField(exist = false)
private Integer checkRecordPointCount;

View File

@ -35,8 +35,8 @@ public class FireCheckRecordDeviceDO extends BaseDO {
//是否检查过0已经检查1未检查2已打回
@ApiModelProperty(value = "是否检查过0已经检查1未检查2已打回")
private Integer checkedFlag;
//0合格1不合格2不涉及
@ApiModelProperty(value = "0合格1不合格2不涉及")
//0合格1不合格
@ApiModelProperty(value = "0合格1不合格")
private Integer normalFlag;
//打回原因
@ApiModelProperty(value = "打回原因")

View File

@ -8,6 +8,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
@ -48,10 +49,10 @@ public class FireDeviceDO extends BaseDO {
private String fireDeviceCode;
//有效期开始时间
@ApiModelProperty(value = "有效期开始时间")
private LocalDateTime validityStartTime;
private LocalDate validityStartTime;
//有效期结束时间
@ApiModelProperty(value = "有效期结束时间")
private LocalDateTime validityEndTime;
private LocalDate validityEndTime;
//存放地点
@ApiModelProperty(value = "存放地点")
private String storageLocation;
@ -82,6 +83,9 @@ public class FireDeviceDO extends BaseDO {
@ApiModelProperty(value = "负责人岗位")
@TableField(exist = false)
private String userPostName;
@ApiModelProperty(value = "企业名称")
@TableField(exist = false)
private String corpName;
public FireDeviceDO(String fireDeviceId) {
this.fireDeviceId = fireDeviceId;

View File

@ -23,5 +23,7 @@ public interface FireCheckListUserMapper extends BaseMapper<FireCheckListUserDO>
List<FireCheckListUserDO> getListUserByFireCheckIdList(List<String> fireCheckIdList);
List<FireCheckListUserDO> getListByFireCheckId(String fireCheckId);
}

View File

@ -19,5 +19,9 @@ import java.util.Map;
public interface FireCheckRecordPointMapper extends BaseMapper<FireCheckRecordPointDO> {
List<FireCheckRecordPointDO> getCheckRecordPointList(Map<String, Object> params);
List<String> getLastThreeRecord(String firePointId);
List<FireCheckRecordPointDO> getCheckRecordPointListByCheckRecordIds(List<String> fireCheckRecordIdList);
}

View File

@ -33,5 +33,7 @@ public interface FireDeviceMapper extends BaseMapper<FireDeviceDO> {
List<DataStatisticDO> countByCorpinfoIds(List<Long> corpinfoIds);
Long getFireDeviceCount(Map<String, Object> params);
IPage<FireDeviceDO> pageByPointId(IPage<FireDeviceDO> iPage, Map<String, Object> params);
}

View File

@ -27,5 +27,6 @@ public interface FireCheckListUserRepository extends BaseRepository<FireCheckLis
List<FireCheckListUserDO> getListUserByFireCheckIdList(List<String> fireCheckIdList);
List<FireCheckListUserDO> getListByFireCheckId(String fireCheckId);
}

View File

@ -22,5 +22,9 @@ public interface FireCheckRecordPointRepository extends BaseRepository<FireCheck
List<FireCheckRecordPointDO> getCheckRecordPointList(Map<String, Object> params);
void updateCheckFlag(FireCheckRecordPointDO pointInfo);
List<String> getLastThreeRecord(String firePointId);
List<FireCheckRecordPointDO> getCheckRecordPointListByCheckRecordIds(List<String> fireCheckRecordIdList);
}

View File

@ -37,5 +37,7 @@ public interface FireDeviceRepository extends BaseRepository<FireDeviceDO> {
List<FireDeviceDO> getDeviceListByFirePointId(@NotEmpty(message = "消防点位id不能为空") String firePointId);
List<DataStatisticDO> countByCorpinfoIds(List<Long> corpinfoIds);
PageResponse<FireDeviceDO> pageByPointId(Map<String, Object> params);
}

View File

@ -28,5 +28,7 @@ public interface FireRegionRepository extends BaseRepository<FireRegionDO> {
Long getFireRegionCount();
List<DataStatisticDO> countByCorpinfoIds(List<Long> corpinfoIds);
void checkRegion(@NotEmpty(message = "消防区域id不能为空") String fireRegionId);
}

View File

@ -61,5 +61,11 @@ public class FireCheckListUserRepositoryImpl extends BaseRepositoryImpl<FireChec
public List<FireCheckListUserDO> getListUserByFireCheckIdList(List<String> fireCheckIdList) {
return fireCheckListUserMapper.getListUserByFireCheckIdList(fireCheckIdList);
}
@Override
public List<FireCheckListUserDO> getListByFireCheckId(String fireCheckId) {
return fireCheckListUserMapper.getListByFireCheckId(fireCheckId);
}
}

View File

@ -63,5 +63,15 @@ public class FireCheckRecordPointRepositoryImpl extends BaseRepositoryImpl<FireC
fireCheckRecordPointMapper.update(pointInfo, queryWrapper);
}
@Override
public List<String> getLastThreeRecord(String firePointId) {
return fireCheckRecordPointMapper.getLastThreeRecord(firePointId);
}
@Override
public List<FireCheckRecordPointDO> getCheckRecordPointListByCheckRecordIds(List<String> fireCheckRecordIdList) {
return fireCheckRecordPointMapper.getCheckRecordPointListByCheckRecordIds(fireCheckRecordIdList);
}
}

View File

@ -117,5 +117,13 @@ public class FireDeviceRepositoryImpl extends BaseRepositoryImpl<FireDeviceMappe
public List<DataStatisticDO> countByCorpinfoIds(List<Long> corpinfoIds) {
return fireDeviceMapper.countByCorpinfoIds(corpinfoIds);
}
@Override
public PageResponse<FireDeviceDO> pageByPointId(Map<String, Object> params) {
IPage<FireDeviceDO> iPage = new Query<FireDeviceDO>().getPage(params);
IPage<FireDeviceDO> result = fireDeviceMapper.pageByPointId(iPage, params);
return PageHelper.pageToResponse(result, result.getRecords());
}
}

View File

@ -86,6 +86,14 @@ public class FireRegionRepositoryImpl extends BaseRepositoryImpl<FireRegionMappe
return fireRegionMapper.countByCorpinfoIds(corpinfoIds);
}
@Override
public void checkRegion(String fireRegionId) {
QueryWrapper<FireRegionDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("fire_region_id", fireRegionId);
FireRegionDO one = getOne(queryWrapper);
if(CommonFlagEnum.YES.getCode().equals(one.getState())){
throw new RuntimeException("该区域已禁用");
}
}
}

View File

@ -42,6 +42,12 @@
<if test="params.userName != null and params.userName != ''">
and u.name like CONCAT('%', #{params.userName}, '%')
</if>
<if test="params.stateList != null and params.stateList.size > 0 ">
and cl.state IN
<foreach item="item" collection="params.stateList" separator="," open="(" close=")" index="">
#{item}
</foreach>
</if>
group by cl.id
ORDER BY cl.create_time DESC
</select>
@ -268,6 +274,12 @@
<if test="params.state != null and params.state != ''">
AND cl.state = #{params.state}
</if>
<if test="params.stateList != null and params.stateList.size > 0 ">
and cl.state IN
<foreach item="item" collection="params.stateList" separator="," open="(" close=")" index="">
#{item}
</foreach>
</if>
GROUP BY cl.fire_check_id
HAVING
@ -275,15 +287,17 @@
<if test="params.checkStatus != null and params.checkStatus != ''">
<choose>
<when test="params.checkStatus == 1">
AND (cl.fire_check_type = 'fireCheckPeriod0009' OR checkedCount = 0)
AND (cl.fire_check_type = 'fireCheckPeriod0009' OR checkCycleCount = 0)
</when>
<when test="params.checkStatus == 2">
AND (cl.fire_check_type = 'fireCheckPeriod0009' OR checkedCount > 0)
AND (cl.fire_check_type = 'fireCheckPeriod0009' OR checkCycleCount > 0)
</when>
</choose>
</if>
ORDER BY cl.create_time desc
ORDER BY CASE
WHEN cl.state=0 THEN 1
ELSE 2
END asc, cl.create_time desc
</select>
<select id="getCheckListRecord" resultType="com.zcloud.fire.check.persistence.dataobject.FireCheckListDO">

View File

@ -59,9 +59,11 @@
<select id="getListUserByFireCheckIdList" resultType="com.zcloud.fire.check.persistence.dataobject.FireCheckListUserDO">
select cu.fire_check_list_user_id as fireCheckListUserId,
cu.fire_check_id as fireCheckId,
GROUP_CONCAT(DISTINCT u.name) AS userName
GROUP_CONCAT(DISTINCT u.name) AS userName,
GROUP_CONCAT(DISTINCT p.post_name) AS postName
from fire_check_list_user cu
left join user u on cu.user_id = u.id
left join post p on u.post_id = p.id
where cu.delete_enum = 'FALSE' and cu.fire_check_id in
<foreach collection="fireCheckIdList" item="fireCheckId" open="(" close=")" separator=",">
#{fireCheckId}
@ -69,5 +71,15 @@
group by cu.fire_check_id
</select>
<select id="getListByFireCheckId" resultType="com.zcloud.fire.check.persistence.dataobject.FireCheckListUserDO">
select cu.*,
u.name AS userName,
d.name AS departmentName
from fire_check_list_user cu
left join user u on cu.user_id = u.id
left join department d on cu.department_id = d.id
where cu.delete_enum = 'FALSE' and cu.fire_check_id=#{fireCheckId}
</select>
</mapper>

View File

@ -64,10 +64,8 @@
</select>
<select id="getCheckRecordPageH5" resultType="com.zcloud.fire.check.persistence.dataobject.FireCheckRecordDO">
select cr.*,
GROUP_CONCAT(DISTINCT u.name) AS userName,
GROUP_CONCAT(DISTINCT d.name) AS departmentName,
GROUP_CONCAT(DISTINCT cfp.fire_region_name) AS fireRegionNameList,
GROUP_CONCAT(DISTINCT cfp.fire_point_name) AS firePointNameList
GROUP_CONCAT(DISTINCT u.name) AS userNameList,
GROUP_CONCAT(DISTINCT d.name) AS departmentName
from fire_check_record cr
left join fire_check_record_user cru on cr.fire_record_id = cru.fire_record_id and cru.delete_enum = 'FALSE'
left join user u on cru.user_id = u.id

View File

@ -32,5 +32,29 @@
order by fp.create_time desc ,cfp.create_time desc
</select>
<select id="getLastThreeRecord" resultType="string">
select fire_record_point_id
from fire_check_record_point
where fire_point_id = #{firePointId}
group by fire_record_point_id
order by create_time desc
limit 3
</select>
<select id="getCheckRecordPointListByCheckRecordIds" resultType="com.zcloud.fire.check.persistence.dataobject.FireCheckRecordPointDO">
select crp.fire_record_id,
GROUP_CONCAT(DISTINCT fr.fire_region_name) as fireRegionName,
GROUP_CONCAT(DISTINCT fr.fire_region_code) as fireRegionCode,
GROUP_CONCAT(DISTINCT frp.fire_point_name) as firePointName,
GROUP_CONCAT(DISTINCT frp.fire_point_code) as firePointCode
from fire_check_record_point crp
left join fire_region fr on fr.fire_region_id = crp.fire_region_id
left join fire_point frp on frp.fire_point_id = crp.fire_point_id
where crp.delete_enum = 'FALSE'
and crp.fire_record_id in
<foreach item="item" collection="fireCheckRecordIdList" separator="," open="(" close=")" index="">
#{item}
</foreach>
group by crp.fire_record_id
</select>
</mapper>

View File

@ -29,7 +29,7 @@
LEFT JOIN user u ON u.id = p.user_id
WHERE d.delete_enum = 'false'
AND d.corpinfo_id = #{params.corpinfoId}
<if test="params.ids != null and params.ids.length > 0">
<if test="params.ids != null and params.ids.size > 0">
AND d.id IN
<foreach collection="params.ids" item="id" open="(" close=")" separator=",">
#{id}
@ -82,7 +82,7 @@
left join post po on u.post_id = po.id
WHERE d.delete_enum = 'false'
AND d.corpinfo_id = #{params.corpinfoId}
<if test="params.ids != null and !params.ids.isEmpty() ">
<if test="params.ids != null and params.ids.size > 0">
AND d.id IN
<foreach collection="params.ids" item="id" open="(" close=")" separator=",">
#{id}
@ -181,5 +181,58 @@
and c.use_flag = 1
and r.delete_enum = 'FALSE'
</select>
<select id="pageByPointId" resultType="com.zcloud.fire.check.persistence.dataobject.FireDeviceDO">
SELECT
d.*,
r.department_id as departmentId,
p.fire_point_name as firePointName,
r.fire_region_name as fireRegionName,
r.fire_region_code as fireRegionCode,
p.fire_point_code as firePointCode,
dp.name as departmentName,
u.name as userName,
c.corp_name as corpName
FROM fire_device d
LEFT JOIN fire_point p ON d.fire_point_id = p.fire_point_id
LEFT JOIN fire_region r ON p.fire_region_id = r.fire_region_id
LEFT JOIN department dp ON r.department_id = dp.id
LEFT JOIN user u ON u.id = p.user_id
left join corp_info c on d.corpinfo_id = c.id
WHERE d.delete_enum = 'false'
<if test="params.ids != null and params.ids.size > 0">
AND d.id IN
<foreach collection="params.ids" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</if>
<if test="params.firePointId != null and params.firePointId != ''">
AND d.fire_point_id = #{params.firePointId}
</if>
<if test="params.fireDeviceType != null and params.fireDeviceType != ''">
AND d.fire_device_type = #{params.fireDeviceType}
</if>
<if test="params.fireRegionId != null and params.fireRegionId != ''">
AND d.fire_region_id = #{params.fireRegionId}
</if>
<if test="params.firePointName != null and params.firePointName != ''">
AND p.fire_point_name LIKE CONCAT('%', #{params.firePointName}, '%')
</if>
<if test="params.fireDeviceCode != null and params.fireDeviceCode != ''">
AND d.fire_device_code LIKE CONCAT('%', #{params.fireDeviceCode}, '%')
</if>
<if test="params.departmentId != null ">
AND r.department_id = #{params.departmentId}
</if>
<if test="params.departmentName != null and params.departmentName != ''">
AND dp.name LIKE CONCAT('%', #{params.departmentName}, '%')
</if>
<if test="params.userName != null and params.userName != ''">
AND u.name LIKE CONCAT('%', #{params.userName}, '%')
</if>
order by d.create_time desc
</select>
</mapper>