7 changed files with 537 additions and 0 deletions
@ -0,0 +1,31 @@ |
|||
package com.kms.build.controller; |
|||
|
|||
import com.jianwei.common.core.domain.AjaxResult; |
|||
import com.kms.build.service.FileService; |
|||
import lombok.Data; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
@RestController |
|||
@RequestMapping("/file") |
|||
public class FileController { |
|||
|
|||
@Autowired |
|||
private FileService fileService; |
|||
|
|||
|
|||
@GetMapping("/list/{proNo}/{proCode}") |
|||
public AjaxResult file(@PathVariable String proNo, @PathVariable String proCode) { |
|||
return AjaxResult.success(fileService.fileList(proNo,proCode)); |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
} |
@ -0,0 +1,12 @@ |
|||
package com.kms.build.controller; |
|||
|
|||
import java.lang.annotation.ElementType; |
|||
import java.lang.annotation.Retention; |
|||
import java.lang.annotation.RetentionPolicy; |
|||
import java.lang.annotation.Target; |
|||
|
|||
@Retention(RetentionPolicy.RUNTIME) |
|||
@Target(ElementType.FIELD) // 指定注解用于字段
|
|||
public @interface Stage { |
|||
String value() default ""; |
|||
} |
@ -0,0 +1,231 @@ |
|||
package com.kms.build.domain.dto; |
|||
|
|||
|
|||
import com.jianwei.common.annotation.Excel; |
|||
import com.jianwei.common.core.domain.BaseEntity; |
|||
import com.kms.build.controller.Stage; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
@Data |
|||
public class FileDto extends BaseEntity implements Serializable { |
|||
|
|||
//专题基本信息规划报告
|
|||
@Stage(value = "专题管理") |
|||
private String projectReport; |
|||
|
|||
//专题任务书规划附件(多列)
|
|||
@Stage(value = "专题管理") |
|||
private String projectAttachment; |
|||
|
|||
//专题任务书意见附件(多列)
|
|||
@Stage(value = "专题管理") |
|||
private String opinionAttachment; |
|||
|
|||
//专题合同管理附件(多列)
|
|||
@Stage(value = "专题管理") |
|||
private String contractAttachment; |
|||
|
|||
//专题文档管理附件(多列)
|
|||
@Stage(value = "专题管理") |
|||
private String acceptDocumentAttachment; |
|||
|
|||
//专题成果管理附件(多列)
|
|||
@Stage(value = "专题管理") |
|||
private String fileAttachmentRelation; |
|||
|
|||
//计划编制审批意见附件
|
|||
@Stage(value = "计划管理") |
|||
private String opinionAttachmentPlan; |
|||
|
|||
//计划报批计划附件
|
|||
@Stage(value = "计划管理") |
|||
private String planningAttachment; |
|||
|
|||
|
|||
//计划报批意见附件
|
|||
@Stage(value = "计划管理") |
|||
private String opinionAttachmentRep; |
|||
|
|||
//计划评价信息附件
|
|||
@Stage(value = "计划管理") |
|||
private String documentAttachment; |
|||
|
|||
//项目建议书相关附件
|
|||
@Stage(value = "项目建议书") |
|||
private String projectProposalAttachment; |
|||
|
|||
//项目建议书批复意见附件
|
|||
@Stage(value = "项目建议书") |
|||
private String approvalOpinionAttachment; |
|||
|
|||
//可行性研究报告文件
|
|||
@Stage(value = "可行性研究") |
|||
private String feasibilityReportFile; |
|||
//可行性研究报告相关附件
|
|||
@Stage(value = "可行性研究") |
|||
private String feasibilityReportAttachment; |
|||
|
|||
//初步设计概算报告
|
|||
@Stage(value = "初步设计") |
|||
private String designEstimateReport; |
|||
//相关上位规划附件
|
|||
@Stage(value = "初步设计") |
|||
private String relatedAttachment; |
|||
|
|||
//招标计划基本信息附件(多列)
|
|||
@Stage(value = "招标管理") |
|||
private String bidAttachment; |
|||
|
|||
//资格预审公告附件(多列)
|
|||
@Stage(value = "招标管理") |
|||
private String noticeAttachment; |
|||
|
|||
//招标公告附件(多列)
|
|||
@Stage(value = "招标管理") |
|||
private String attachment; |
|||
|
|||
|
|||
//招标文件附件(多列)
|
|||
@Stage(value = "招标管理") |
|||
private String bidDocument; |
|||
//中标候选人公示文本扫描(多列)
|
|||
@Stage(value = "招标管理") |
|||
private String attachmentAddress; |
|||
|
|||
//中标结果附件(多列)
|
|||
@Stage(value = "招标管理") |
|||
private String attachmentAddressResult; |
|||
|
|||
//项目合同及履行公示内容(多列)
|
|||
@Stage(value = "在建阶段") |
|||
private String contractNoticeContent; |
|||
|
|||
//在建合同基本信息合同文件(多列)
|
|||
@Stage(value = "在建阶段") |
|||
private String contractFile; |
|||
|
|||
//工程开工令
|
|||
@Stage(value = "在建阶段") |
|||
private String workCommencementOrder1; |
|||
//施工组织设计
|
|||
@Stage(value = "在建阶段") |
|||
private String workCommencementOrder2; |
|||
//施工准备措施
|
|||
@Stage(value = "在建阶段") |
|||
private String workCommencementOrder3; |
|||
//施工准备措施检查
|
|||
@Stage(value = "在建阶段") |
|||
private String workCommencementOrder4; |
|||
//项目开工文件
|
|||
@Stage(value = "在建阶段") |
|||
private String workCommencementOrder5; |
|||
|
|||
/** 项目法人单位工程质量终身责任承诺书 */ |
|||
@Excel(name = "项目法人单位工程质量终身责任承诺书") |
|||
@ApiModelProperty("项目法人单位工程质量终身责任承诺书") |
|||
@Stage(value = "在建阶段") |
|||
private String enginerQualityAttachment; |
|||
|
|||
/** 设计单位工程质量终身责任承诺书 */ |
|||
@Excel(name = "设计单位工程质量终身责任承诺书") |
|||
@ApiModelProperty("设计单位工程质量终身责任承诺书") |
|||
@Stage(value = "在建阶段") |
|||
private String designUnitAttachment; |
|||
|
|||
/** 勘测单位工程质量终身责任承诺书 */ |
|||
@Excel(name = "勘测单位工程质量终身责任承诺书") |
|||
@ApiModelProperty("勘测单位工程质量终身责任承诺书") |
|||
@Stage(value = "在建阶段") |
|||
private String surveyUnitAttachment; |
|||
|
|||
/** 施工单位工程质量终身责任承诺书 */ |
|||
@Excel(name = "施工单位工程质量终身责任承诺书") |
|||
@ApiModelProperty("施工单位工程质量终身责任承诺书") |
|||
@Stage(value = "在建阶段") |
|||
private String constructionUnitAttachment; |
|||
|
|||
/** 监理单位工程质量终身责任承诺书 */ |
|||
@Excel(name = "监理单位工程质量终身责任承诺书") |
|||
@ApiModelProperty("监理单位工程质量终身责任承诺书") |
|||
@Stage(value = "在建阶段") |
|||
private String supervisionUnitAttachment; |
|||
|
|||
/** 质量检测单位工程质量终身责任承诺书 */ |
|||
@Excel(name = "质量检测单位工程质量终身责任承诺书") |
|||
@ApiModelProperty("质量检测单位工程质量终身责任承诺书") |
|||
@Stage(value = "在建阶段") |
|||
private String inspectionUnitAttachment; |
|||
|
|||
/** 永久性责任标牌 */ |
|||
@Excel(name = "永久性责任标牌") |
|||
@ApiModelProperty("永久性责任标牌") |
|||
@Stage(value = "在建阶段") |
|||
private String responsibilitySignAttachment; |
|||
|
|||
//项目划分意见(在建基本信息表)
|
|||
@Stage(value = "在建阶段") |
|||
private String projectDivisionAttachment; |
|||
//检查意见报告(多列)
|
|||
@Stage(value = "在建阶段") |
|||
private String inspectOpinion; |
|||
|
|||
//整体措施附件(多列)
|
|||
@Stage(value = "在建阶段") |
|||
private String mesAttachment; |
|||
|
|||
//备案内容(多列)
|
|||
@Stage(value = "在建阶段") |
|||
private String filingsContent; |
|||
//度汛方案批复意见(多列)
|
|||
@Stage(value = "在建阶段") |
|||
private String approvalOpinion; |
|||
|
|||
//验收鉴定书
|
|||
@Stage(value = "在建阶段") |
|||
private String acceptanceAppraisalCertificate; |
|||
|
|||
/** 环保验收文件 */ |
|||
@Excel(name = "环保验收文件") |
|||
@ApiModelProperty("环保验收文件") |
|||
@Stage(value = "在建阶段") |
|||
private String environmentalAcceptanceDocuments; |
|||
|
|||
|
|||
/** 水土保持验收文件 */ |
|||
@Excel(name = "水土保持验收文件") |
|||
@ApiModelProperty("水土保持验收文件") |
|||
@Stage(value = "在建阶段") |
|||
private String waterConservationFile; |
|||
|
|||
|
|||
/** 移民安置验收文件 */ |
|||
@Excel(name = "移民安置验收文件") |
|||
@ApiModelProperty("移民安置验收文件") |
|||
@Stage(value = "在建阶段") |
|||
private String resettlementAcceptanceFile; |
|||
|
|||
|
|||
/** 验收影像资料 */ |
|||
@Excel(name = "验收影像资料") |
|||
@ApiModelProperty("验收影像资料") |
|||
@Stage(value = "在建阶段") |
|||
private String acceptanceImageData; |
|||
|
|||
|
|||
/** 工程档案验收文件 */ |
|||
@Excel(name = "工程档案验收文件") |
|||
@ApiModelProperty("工程档案验收文件") |
|||
@Stage(value = "在建阶段") |
|||
private String engineeringArchivesFile; |
|||
|
|||
|
|||
/** 竣工决算验收文件 */ |
|||
@Excel(name = "竣工决算验收文件") |
|||
@ApiModelProperty("竣工决算验收文件") |
|||
@Stage(value = "在建阶段") |
|||
private String completionFinalFile; |
|||
|
|||
} |
@ -0,0 +1,20 @@ |
|||
package com.kms.build.domain.dto; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import lombok.Data; |
|||
|
|||
import java.util.Date; |
|||
|
|||
@Data |
|||
public class FileResponseDto { |
|||
|
|||
private String id; |
|||
|
|||
private String fileName; |
|||
|
|||
private String uploadDate; |
|||
|
|||
private String fileNo; |
|||
|
|||
private String fileStage; |
|||
} |
@ -0,0 +1,19 @@ |
|||
package com.kms.build.mapper; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.kms.build.domain.dto.FileDto; |
|||
import com.kms.build.domain.dto.FileResponseDto; |
|||
import org.apache.ibatis.annotations.Param; |
|||
import org.springframework.stereotype.Repository; |
|||
|
|||
@Repository |
|||
public interface FileMapper extends BaseMapper<FileDto> { |
|||
|
|||
|
|||
|
|||
|
|||
FileDto fileList(@Param("proNo") String proNo, |
|||
@Param("proCode") String proCode); |
|||
|
|||
|
|||
} |
@ -0,0 +1,131 @@ |
|||
package com.kms.build.service; |
|||
|
|||
import com.fasterxml.jackson.core.JsonProcessingException; |
|||
import com.fasterxml.jackson.core.type.TypeReference; |
|||
import com.fasterxml.jackson.databind.JsonMappingException; |
|||
import com.fasterxml.jackson.databind.ObjectMapper; |
|||
import com.jianwei.common.core.domain.AjaxResult; |
|||
import com.jianwei.common.core.service.BaseService; |
|||
import com.kms.build.controller.Stage; |
|||
import com.kms.build.domain.ContractEvaluationIssues; |
|||
import com.kms.build.domain.dto.FileDto; |
|||
import com.kms.build.domain.dto.FileResponseDto; |
|||
import com.kms.build.mapper.ContractEvaluationIssuesMapper; |
|||
import com.kms.build.mapper.FileMapper; |
|||
import lombok.Data; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.lang.reflect.Field; |
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
@Service |
|||
public class FileService extends BaseService<FileMapper, FileDto> { |
|||
|
|||
|
|||
@Autowired |
|||
private FileMapper fileMapper; |
|||
|
|||
|
|||
public List<FileResponseDto> fileList(String proNo, String proCode) { |
|||
|
|||
FileDto fileDto=fileMapper.fileList(proNo, proCode); |
|||
|
|||
List<FileResponseDto> fileResponseDtos = handleFileList(fileDto); |
|||
|
|||
|
|||
return fileResponseDtos; |
|||
|
|||
|
|||
|
|||
} |
|||
|
|||
|
|||
public List<FileResponseDto> handleFileList(FileDto fileDto) { |
|||
|
|||
List<FileResponseDto> list = new ArrayList<>(); |
|||
|
|||
Field[] fields = fileDto.getClass().getDeclaredFields(); |
|||
|
|||
for (Field field : fields) { |
|||
field.setAccessible(true); |
|||
try { |
|||
if (isEmpty((String) field.get(fileDto))) { |
|||
String trim = ((String) field.get(fileDto)).replace(", []", "").replace("[]", "").trim(); |
|||
|
|||
String[] split = trim.split("\\$ "); |
|||
|
|||
|
|||
Stage annotation = field.getAnnotation(Stage.class); |
|||
FileResponseDto responseDto = new FileResponseDto(); |
|||
for (String s : split) { |
|||
ObjectMapper objectMapper = new ObjectMapper(); |
|||
if (s.equals("")) { |
|||
continue; |
|||
} |
|||
List<FileInfo> fileInfoList = objectMapper.readValue(s, new TypeReference<List<FileInfo>>(){}); |
|||
for (FileInfo fileInfo : fileInfoList) { |
|||
responseDto.setFileName(fileInfo.getName()); |
|||
responseDto.setFileStage(annotation.value()); |
|||
if (fileInfo.getFileName() == null) { |
|||
responseDto.setUploadDate(null); |
|||
}else { |
|||
responseDto.setUploadDate(fileInfo.getFileName().substring(9, 19)); |
|||
|
|||
} |
|||
|
|||
list.add(responseDto); |
|||
} |
|||
|
|||
} |
|||
|
|||
} |
|||
} catch (IllegalAccessException e) { |
|||
e.printStackTrace(); |
|||
} catch (JsonMappingException e) { |
|||
throw new RuntimeException(e); |
|||
} catch (JsonProcessingException e) { |
|||
throw new RuntimeException(e); |
|||
} |
|||
} |
|||
|
|||
return list; |
|||
} |
|||
|
|||
|
|||
public Boolean isEmpty(String name) { |
|||
if (name == null) { |
|||
return false; |
|||
} |
|||
String trim = name.replace("[],", "").replace("[]","").trim(); |
|||
if (trim.equals("")) { |
|||
return false; |
|||
}else { |
|||
return true; |
|||
} |
|||
|
|||
} |
|||
|
|||
|
|||
public static void getMyAnnotationValues(Class<?> clazz) { |
|||
for (Field field : clazz.getDeclaredFields()) { // 遍历所有字段
|
|||
if (field.isAnnotationPresent(Stage.class)) { // 检查MyAnnotation注解是否存在
|
|||
Stage annotation = field.getAnnotation(Stage.class); |
|||
System.out.println("Field: " + field.getName() + ", Value: " + annotation.value()); |
|||
} |
|||
} |
|||
} |
|||
|
|||
|
|||
@Data |
|||
public static class FileInfo { |
|||
private String name; |
|||
private String fileName; |
|||
private String url; |
|||
private long uid; |
|||
private String status; |
|||
|
|||
// 构造函数、getters和setters
|
|||
} |
|||
} |
@ -0,0 +1,93 @@ |
|||
<?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.kms.build.mapper.FileMapper"> |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
<select id="fileList" resultType="com.kms.build.domain.dto.FileDto"> |
|||
SELECT |
|||
spi.PROJECT_REPORT projectReport, |
|||
GROUP_CONCAT(DISTINCT spa.PROJECT_ATTACHMENT SEPARATOR '$ ' ) project_attachment, |
|||
GROUP_CONCAT(DISTINCT spa.OPINION_ATTACHMENT SEPARATOR '$ ' ) OPINION_ATTACHMENT, |
|||
GROUP_CONCAT(DISTINCT spc.CONTRACT_ATTACHMENT SEPARATOR '$ ') CONTRACT_ATTACHMENT, |
|||
GROUP_CONCAT(DISTINCT spd.ACCEPT_DOCUMENT_ATTACHMENT SEPARATOR '$ ') ACCEPT_DOCUMENT_ATTACHMENT, |
|||
GROUP_CONCAT(DISTINCT spg.FILE_ATTACHMENT_RELATION SEPARATOR '$ ') FILE_ATTACHMENT_RELATION, |
|||
pa.OPINION_ATTACHMENT OPINION_ATTACHMENT_PLAN, |
|||
pri.PLANNING_ATTACHMENT, |
|||
pri.OPINION_ATTACHMENT OPINION_ATTACHMENT_REP, |
|||
pei.DOCUMENT_ATTACHMENT, |
|||
spp.PROJECT_PROPOSAL_ATTACHMENT, |
|||
spp.APPROVAL_OPINION_ATTACHMENT, |
|||
spf.FEASIBILITY_REPORT_FILE, |
|||
spf.FEASIBILITY_REPORT_ATTACHMENT, |
|||
spda.DESIGN_ESTIMATE_REPORT, |
|||
spda.RELATED_ATTACHMENT, |
|||
GROUP_CONCAT(DISTINCT pbi.BID_ATTACHMENT SEPARATOR '$ ') BID_ATTACHMENT, |
|||
GROUP_CONCAT(DISTINCT pbp.NOTICE_ATTTACHMENT SEPARATOR '$ ') NOTICE_ATTTACHMENT, |
|||
GROUP_CONCAT(DISTINCT pbn.ATTACHMENT SEPARATOR '$ ') ATTACHMENT, |
|||
GROUP_CONCAT(DISTINCT bf.bid_document SEPARATOR '$ ') bid_document, |
|||
GROUP_CONCAT(DISTINCT pbw.ATTACHMENT_ADDRESS SEPARATOR '$ ') ATTACHMENT_ADDRESS, |
|||
GROUP_CONCAT(DISTINCT pbr.ATTACHMENT_ADDRESS SEPARATOR '$ ') ATTACHMENT_ADDRESS_RESULT, |
|||
GROUP_CONCAT(DISTINCT cfn.contract_notice_content SEPARATOR '$ ') contract_notice_content, |
|||
GROUP_CONCAT(DISTINCT bci.CONTRACT_FILE SEPARATOR '$ ') CONTRACT_FILE, |
|||
bcm.work_commencement_order1, |
|||
bcm.work_commencement_order2, |
|||
bcm.work_commencement_order3, |
|||
bcm.work_commencement_order4, |
|||
bcm.work_commencement_order5, |
|||
br.enginer_quality_attachment, |
|||
br.design_unit_attachment, |
|||
br.survey_unit_attachment, |
|||
br.construction_unit_attachment, |
|||
br.supervision_unit_attachment, |
|||
br.inspection_unit_attachment, |
|||
br.responsibility_sign_attachment, |
|||
bpi.project_division_attachment, |
|||
GROUP_CONCAT(DISTINCT pi.inspect_opinion SEPARATOR '$ ') inspect_opinion, |
|||
GROUP_CONCAT(DISTINCT bsf.attachment SEPARATOR '$ ') mes_attachemnt, |
|||
GROUP_CONCAT(DISTINCT bsf.filings_content SEPARATOR '$ ') filings_content, |
|||
GROUP_CONCAT(DISTINCT bsf.approval_opinion SEPARATOR '$ ') APPROVAL_OPINION, |
|||
bca.ACCEPTANCE_APPRAISAL_CERTIFICATE, |
|||
bca.ENVIRONMENTAL_ACCEPTANCE_DOCUMENTS, |
|||
bca.WATER_CONSERVATION_FILE, |
|||
bca.RESETTLEMENT_ACCEPTANCE_FILE, |
|||
bca.ACCEPTANCE_IMAGE_DATA, |
|||
bca.ENGINEERING_ARCHIVES_FILE, |
|||
bca.COMPLETION_FINAL_FILE |
|||
|
|||
FROM |
|||
bs_sgc_jsjd_bui_pro_info bpi |
|||
LEFT JOIN bs_slgc_qqjd_spe_pro_info spi ON bpi.PRO_NO = spi.PRO_NO |
|||
LEFT JOIN bs_slgc_qqjd_spe_pro_approval spa ON bpi.PRO_NO = spa.PRO_NO |
|||
LEFT JOIN bs_slgc_qqjd_spe_pro_cont spc ON bpi.PRO_NO=spc.PRO_NO |
|||
LEFT JOIN bs_slgc_qqjd_spe_pro_document spd ON bpi.PRO_NO=spd.PRO_NO |
|||
LEFT JOIN bs_slgc_qqjd_spe_pro_gain spg ON bpi.PRO_NO=spg.PRO_NO |
|||
LEFT JOIN bs_slgc_qqjd_plan_approval pa ON bpi.PRO_NO=pa.PRO_NO |
|||
LEFT JOIN bs_slgc_qqjd_plan_rep_info pri ON bpi.PRO_NO=pri.PRO_NO |
|||
LEFT JOIN bs_slgc_qqjd_plan_eval_info pei ON bpi.PRO_NO=pei.PRO_NO |
|||
LEFT JOIN bs_slgc_qqjd_spe_pro_proposal spp ON bpi.PRO_NO=spp.PRO_NO and bpi.PRO_CODE=spp.PROJECT_CODE |
|||
LEFT JOIN bs_slgc_qqjd_spe_pro_fea spf ON bpi.PRO_NO=spf.PRO_NO and bpi.PRO_CODE =spf.PROJECT_CODE |
|||
LEFT JOIN bs_sgc_qqjd_spe_pro_des_app spda ON bpi.PRO_NO=spda.PRO_NO and bpi.PRO_CODE=spda.PROJECT_CODE |
|||
LEFT JOIN bs_slgc_qqjd_pro_bid_info pbi ON bpi.PRO_NO=pbi.PRO_NO and bpi.PRO_CODE=pbi.PROJECT_CODE |
|||
LEFT JOIN bs_slgc_qqjd_pro_bid_prequ pbp on bpi.PRO_NO=pbp.PRO_NO and bpi.PRO_CODE=pbp.PROJECT_CODE |
|||
LEFT JOIN bs_slgc_qqjd_pro_bid_notice pbn ON bpi.PRO_NO=pbn.PRO_NO and bpi.PRO_CODE=pbn.PROJECT_CODE |
|||
LEFT JOIN bs_slgc_qqjd_bid_file bf ON bpi.PRO_NO=bf.PRO_NO and bpi.PRO_CODE=bf.PRO_CODE |
|||
LEFT JOIN bs_slgc_qqjd_pro_bid_winning pbw ON bpi.PRO_NO=pbw.PRO_NO and bpi.PRO_CODE=pbw.PROJECT_CODE |
|||
LEFT JOIN bs_slgc_qqjd_pro_bid_result pbr ON bpi.PRO_NO=pbr.PRO_NO and bpi.PRO_CODE =pbr.PROJECT_CODE |
|||
LEFT JOIN bs_slgc_qqjd_contract_fulfilling_notice cfn ON bpi.PRO_NO=cfn.pro_no and bpi.PRO_CODE=cfn.pro_code |
|||
LEFT JOIN bs_sgc_jsjd_bui_cont_info bci ON bpi.PRO_NO=bci.PRO_NO and bpi.PRO_CODE=bci.PRO_CODE |
|||
LEFT JOIN bs_sgc_jsjd_bui_constr_meas bcm ON bpi.PRO_NO=bcm.PRO_NO and bpi.PRO_CODE=bcm.PRO_CODE |
|||
LEFT JOIN bs_sgc_jsjd_bui_respons br ON bpi.PRO_NO=br.pro_no and bpi.PRO_CODE=br.pro_code |
|||
LEFT JOIN bs_sgc_jsjd_bui_pro_inspect pi ON bpi.PRO_NO=pi.pro_no and bpi.PRO_CODE=pi.pro_code |
|||
LEFT JOIN bs_sgc_jsjd_bui_safe_filings bsf ON bpi.PRO_NO=bsf.pro_no and bpi.PRO_CODE =bsf.pro_code |
|||
LEFT JOIN bs_sgc_jsjd_bui_com_acc bca ON bpi.PRO_NO=bca.PRO_NO and bpi.PRO_CODE=bca.PRO_CODE |
|||
WHERE |
|||
bpi.PRO_NO = #{proNo} |
|||
AND bpi.PRO_CODE = #{proCode} |
|||
</select> |
|||
</mapper> |
Loading…
Reference in new issue