需求是四张表:
效果:
StRiskFireInspect:
主键: private String inspectId;
private String permitId;
@NotFound(action = NotFoundAction.IGNORE)
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "PERMIT_ID", referencedColumnName = "PERMIT_ID", insertable = false, updatable = false)
private StRiskPermit permit;
@JsonIgnore
@JSONField(serialize = false)
@NotFound(action = NotFoundAction.IGNORE)
@JoinColumn(name = "INSPECT_ID", referencedColumnName = "INSPECT_ID")
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<StRiskFireInspectType> fireinspecttype = new java.util.ArrayList<StRiskFireInspectType>(0);
StRiskFireInspectType:
主键 private String inspectTypeId;
private String inspectId;
/** 类别编码 **/
/** 类别编码 **/
@Basic
@Column(name="INSPECT_TYPE_CODE",nullable=true )
private String inspectTypeCode;
@NotFound(action = NotFoundAction.IGNORE)
@ManyToOne(fetch = FetchType.EAGER)
@JsonSerialize(using = ValueCodeSerializer.class)
@JoinColumn(name = "INSPECT_TYPE_CODE", referencedColumnName = "CODE", insertable = false, updatable = false)
**//检查人**
private ValueCodeTable codeNameCode; //可以点出 codeName
@NotFound(action = NotFoundAction.IGNORE)
@ManyToOne(fetch = FetchType.EAGER)
@JsonSerialize(using = ValueCodeSerializer.class)
@JoinColumn(name = "INSPECT_ID", referencedColumnName = "INSPECT_ID", insertable = false, updatable = false)
private StRiskFireInspect stRiskFireInspect;
@JsonIgnore
@JSONField(serialize = false)
@NotFound(action = NotFoundAction.IGNORE)
@JoinColumn(name = "INSPECT_TYPE_ID", referencedColumnName = "INSPECT_TYPE_ID")
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<StRiskFireInspectContent> meetings = new ArrayList<>(0);
StRiskFireInspectContent:
主键:private String inspectContentId;
private String inspectTypeId;
/** 内容编码 **/
@Basic
@Column(name="CONTENT_CODE",nullable=true )
private String contentCode;
@NotFound(action = NotFoundAction.IGNORE)
@ManyToOne(fetch = FetchType.EAGER)
@JsonSerialize(using = ValueCodeSerializer.class)
@JoinColumn(name = "CONTENT_CODE", referencedColumnName = "CODE", insertable = false, updatable = false)
**//检查内容**
private ValueCodeTable contentCodeName; 可以点出 codeName
@NotFound(action = NotFoundAction.IGNORE)
@ManyToOne(fetch = FetchType.EAGER)
@JsonSerialize(using = ValueCodeSerializer.class)
@JoinColumn(name = "INSPECT_TYPE_ID", referencedColumnName = "INSPECT_TYPE_ID", insertable = false, updatable = false)
private StRiskFireInspectType stRiskFireInspectType;
StRiskSign:
主键:private String signId;
private String businessId;
**//签字**
private String confirmorSign;
三张表是: inspectId 是 StRiskFireInspect 和 StRiskFireInspectType 关联
inspectTypeId 是 StRiskFireInspectType 和 StRiskFireInspectContent 关联
inspectTypeId 是StRiskFireInspectType 和 StRiskSign 关联
其中 permitId一张许可证只有一个permitId
**检查人对应多条检查内容;检查人对应多个签字 !!!!!!!!!!**
@GetMapping("getFireInspectInformation")
@ResponseBodyMessage
@ApiOperation(value = "现场检查信息")
public List<StRiskFireInspectDto> getFireInspectInformation(@ApiParam(name = "permitId", value = "许可证ID", required = true) @RequestParam(value = "permitId",required = true) String permitId) {
List<StRiskFireInspectDto>listFireInspectInformation=service.getFireInspectInformation(permitId);
return listFireInspectInformation;
}
@Override
public List<StRiskFireInspectDto> getFireInspectInformation(String permitId) {
List<StRiskFireInspectDto> list = new ArrayList<StRiskFireInspectDto>();
List<StRiskFireInspect> listFireInspectInformation = stRiskFireInspectRepository.findByPermitId(permitId);
List<StRiskFireInspectType> typeList = new ArrayList<>();
List<StRiskFireInspectContent> contentList = new ArrayList<>();
if(listFireInspectInformation!=null && listFireInspectInformation.size()>0){
typeList = listFireInspectInformation.get(0).getFireinspecttype();
if(typeList!=null && typeList.size()>0){
for(StRiskFireInspectType type : typeList){
if(type.getMeetings()!=null && type.getMeetings().size()>0) {
contentList.addAll(type.getMeetings());
}
}
}
}
for(StRiskFireInspectContent content : contentList){
StRiskFireInspectDto dto = new StRiskFireInspectDto();
dto.setCodeName(content.getContentCodeName().getCodeName());
for(StRiskFireInspectType type : typeList){
if(content.getInspectTypeId().equals(type.getInspectTypeId())){
dto.setInspectTypeCode(type.getCodeNameCode().getCodeName());
List<StRiskSign> listSign = stRiskSignRepository.getSignByPermitIdAndBusinessId(type.getInspectTypeId());
String confirmorSign = "";
for (StRiskSign sign : listSign) {
confirmorSign += sign.getConfirmorSign()+",";
}
dto.setConfirmorSign(confirmorSign);
break;
}
}
list.add(dto);
}
返回数据:
{
"resultCode": 0,
"result": [
{
"codeName": "与动火相关流程操作符合要求",
"inspectTypeCode": "生产运行",
"confirmorSign": "7,6,"
},
{
"codeName": "满足生产单位的其他生产要求",
"inspectTypeCode": "生产运行",
"confirmorSign": "7,6,"
},
{
"codeName": "消防车、器材及人员到位,消防道路畅通",
"inspectTypeCode": "动火监督",
"confirmorSign": "5,4,"
},
{
"codeName": "动火现场逃生通道符合要求",
"inspectTypeCode": "动火监督",
"confirmorSign": "5,4,"
},
{
"codeName": "应急预案制定和审核",
"inspectTypeCode": "动火监督",
"confirmorSign": "3,2,"
},
{
"codeName": "防静电接地、可燃气、含量等检测按动火方案要求进行,检测结果符合要求",
"inspectTypeCode": "动火监督",
"confirmorSign": "3,2,"
},
{
"codeName": "动火作业许可证按要求办理完毕",
"inspectTypeCode": "动火监督",
"confirmorSign": "3,2,"
},
{
"codeName": "动火涉及的其他许可作业的许可证按要求办理完毕(包括吊装、动土、管线打开等)",
"inspectTypeCode": "动火监督",
"confirmorSign": "3,2,"
},
{
"codeName": "动火作业人员持有效操作证,劳保穿戴符合要求",
"inspectTypeCode": "动火施工",
"confirmorSign": "8,1,"
},
{
"codeName": "现场人员熟悉动火方案内容",
"inspectTypeCode": "动火施工",
"confirmorSign": "8,1,"
},
{
"codeName": "动火区域施工环境符合要求",
"inspectTypeCode": "动火施工",
"confirmorSign": "8,1,"
},
{
"codeName": "施工机具、物料到位",
"inspectTypeCode": "动火施工",
"confirmorSign": "8,1,"
}
],
"msgId": null,
"success": true
}