归档功能完善
This commit is contained in:
+8
-6
@@ -278,15 +278,17 @@ public class ContractLaunchController {
|
|||||||
* 合同归档。
|
* 合同归档。
|
||||||
*
|
*
|
||||||
* 合同全生命周期最后一步,状态变为 completed(已完成)。
|
* 合同全生命周期最后一步,状态变为 completed(已完成)。
|
||||||
* 同时将归档信息推送到法务系统存档(TODO:联调时打开 settlementPushService.pushArchive 调用)。
|
* 同时将归档信息按数据采集 V3.0 的合同归档接口推送到法务系统存档
|
||||||
|
* (TODO:联调时打开 dataCollectionPushService.collectContractArchive 调用)。
|
||||||
*
|
*
|
||||||
* 请求体 ContractLaunchArchiveDto 字段:
|
* 请求体 ContractLaunchArchiveDto 字段:
|
||||||
* archiveKeeper - 档案保管人手机号
|
* archiveReceiveDept - 合同归档接收部门编码
|
||||||
* archiveKeeperUnit - 档案保管单位名称
|
* archiveTransferor - 移交人账号
|
||||||
* archiveKeeperUnitCode - 档案保管单位编码
|
* archivePapers - 纸质档案材料列表
|
||||||
* archiveFiles - 归档附件列表
|
* archiveEles - 电子档案材料列表(含 approvalAttachs)
|
||||||
*
|
*
|
||||||
* 归档附件自动保存到 file 子表(fileCategory = "archive")。
|
* 归档附件自动保存到 file 子表(fileCategory = "archive"),
|
||||||
|
* 纸质/电子档案明细分别保存到独立子表。
|
||||||
*
|
*
|
||||||
* 对应前端功能:归档按钮 → 合同完结
|
* 对应前端功能:归档按钮 → 合同完结
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -16,15 +16,15 @@ public class ContractLaunchArchiveDto implements Serializable {
|
|||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
/** 档案保管人手机号 */
|
/** 合同归档接收部门编码 */
|
||||||
private String archiveKeeper;
|
private String archiveReceiveDept;
|
||||||
|
|
||||||
/** 档案保管单位名称 */
|
/** 移交人账号 */
|
||||||
private String archiveKeeperUnit;
|
private String archiveTransferor;
|
||||||
|
|
||||||
/** 档案保管单位编码 */
|
/** 纸质档案材料 */
|
||||||
private String archiveKeeperUnitCode;
|
private List<ContractLaunchArchivePaperDto> archivePapers = new ArrayList<>();
|
||||||
|
|
||||||
/** 归档附件列表(纸质或电子档案材料) */
|
/** 电子档案材料 */
|
||||||
private List<ContractLaunchFileDto> archiveFiles = new ArrayList<>();
|
private List<ContractLaunchArchiveEleDto> archiveEles = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package com.nbport.zgwl.contractlaunch.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 归档电子档案材料
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ContractLaunchArchiveEleDto implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
private Long contractId;
|
||||||
|
|
||||||
|
/** 档案名称 */
|
||||||
|
private String archivesName;
|
||||||
|
|
||||||
|
private Integer sortOrder;
|
||||||
|
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
/** 电子档案附件 */
|
||||||
|
private List<ContractLaunchFileDto> approvalAttachs = new ArrayList<>();
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
package com.nbport.zgwl.contractlaunch.dto;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 归档纸质档案材料
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ContractLaunchArchivePaperDto implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
private Long contractId;
|
||||||
|
|
||||||
|
/** 档案名称 */
|
||||||
|
private String archivesName;
|
||||||
|
|
||||||
|
/** 份数 */
|
||||||
|
private String archivesNum;
|
||||||
|
|
||||||
|
/** 归档时间 */
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
|
private LocalDateTime archivesTime;
|
||||||
|
|
||||||
|
private Integer sortOrder;
|
||||||
|
|
||||||
|
private String remark;
|
||||||
|
}
|
||||||
@@ -302,13 +302,19 @@ public class ContractLaunchDto implements Serializable {
|
|||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
private LocalDateTime archiveDate;
|
private LocalDateTime archiveDate;
|
||||||
|
|
||||||
/** 档案保管人手机号 */
|
/** 合同归档接收部门编码 */
|
||||||
|
private String archiveReceiveDept;
|
||||||
|
|
||||||
|
/** 移交人账号 */
|
||||||
|
private String archiveTransferor;
|
||||||
|
|
||||||
|
/** 档案保管人手机号(兼容旧归档实现保留) */
|
||||||
private String archiveKeeper;
|
private String archiveKeeper;
|
||||||
|
|
||||||
/** 档案保管单位 */
|
/** 档案保管单位(兼容旧归档实现保留) */
|
||||||
private String archiveKeeperUnit;
|
private String archiveKeeperUnit;
|
||||||
|
|
||||||
/** 档案保管单位编码 */
|
/** 档案保管单位编码(兼容旧归档实现保留) */
|
||||||
private String archiveKeeperUnitCode;
|
private String archiveKeeperUnitCode;
|
||||||
|
|
||||||
// ==================== 业务扩展字段(财务提醒) ====================
|
// ==================== 业务扩展字段(财务提醒) ====================
|
||||||
@@ -377,6 +383,12 @@ public class ContractLaunchDto implements Serializable {
|
|||||||
/** 履行计划列表 */
|
/** 履行计划列表 */
|
||||||
private List<ContractLaunchPlanDto> performancePlans = new ArrayList<>();
|
private List<ContractLaunchPlanDto> performancePlans = new ArrayList<>();
|
||||||
|
|
||||||
|
/** 纸质档案材料 */
|
||||||
|
private List<ContractLaunchArchivePaperDto> archivePapers = new ArrayList<>();
|
||||||
|
|
||||||
|
/** 电子档案材料 */
|
||||||
|
private List<ContractLaunchArchiveEleDto> archiveEles = new ArrayList<>();
|
||||||
|
|
||||||
/** 操作日志列表 */
|
/** 操作日志列表 */
|
||||||
private List<ContractLaunchLogDto> logList = new ArrayList<>();
|
private List<ContractLaunchLogDto> logList = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,9 @@ public class ContractLaunchFileDto implements Serializable {
|
|||||||
/** 文件分类:body-正文, gist-签订依据, other-其他附件, signed-签署文件, archive-归档文件 */
|
/** 文件分类:body-正文, gist-签订依据, other-其他附件, signed-签署文件, archive-归档文件 */
|
||||||
private String fileCategory;
|
private String fileCategory;
|
||||||
|
|
||||||
|
/** 关联合同电子档案材料 ID(仅归档附件使用) */
|
||||||
|
private Long archiveEleId;
|
||||||
|
|
||||||
/** 文件名 */
|
/** 文件名 */
|
||||||
private String fileName;
|
private String fileName;
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package com.nbport.zgwl.contractlaunch.mapper;
|
|||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.nbport.zgwl.contractlaunch.dto.ContractLaunchDto;
|
import com.nbport.zgwl.contractlaunch.dto.ContractLaunchDto;
|
||||||
|
import com.nbport.zgwl.contractlaunch.dto.ContractLaunchArchiveEleDto;
|
||||||
|
import com.nbport.zgwl.contractlaunch.dto.ContractLaunchArchivePaperDto;
|
||||||
import com.nbport.zgwl.contractlaunch.dto.ContractLaunchFileDto;
|
import com.nbport.zgwl.contractlaunch.dto.ContractLaunchFileDto;
|
||||||
import com.nbport.zgwl.contractlaunch.dto.ContractLaunchLogDto;
|
import com.nbport.zgwl.contractlaunch.dto.ContractLaunchLogDto;
|
||||||
import com.nbport.zgwl.contractlaunch.dto.ContractLaunchPartyDto;
|
import com.nbport.zgwl.contractlaunch.dto.ContractLaunchPartyDto;
|
||||||
@@ -29,6 +31,12 @@ public interface ContractLaunchMapper {
|
|||||||
/** 获取日志表序列 */
|
/** 获取日志表序列 */
|
||||||
Long selectLogSeqNextVal();
|
Long selectLogSeqNextVal();
|
||||||
|
|
||||||
|
/** 获取纸质归档表序列 */
|
||||||
|
Long selectArchivePaperSeqNextVal();
|
||||||
|
|
||||||
|
/** 获取电子归档表序列 */
|
||||||
|
Long selectArchiveEleSeqNextVal();
|
||||||
|
|
||||||
/** 分页查询合同列表 */
|
/** 分页查询合同列表 */
|
||||||
IPage<ContractLaunchDto> selectContractPage(Page<ContractLaunchDto> page, @Param("query") ContractLaunchQueryDto queryDto);
|
IPage<ContractLaunchDto> selectContractPage(Page<ContractLaunchDto> page, @Param("query") ContractLaunchQueryDto queryDto);
|
||||||
|
|
||||||
@@ -62,6 +70,16 @@ public interface ContractLaunchMapper {
|
|||||||
@Param("createBy") String createBy,
|
@Param("createBy") String createBy,
|
||||||
@Param("updateBy") String updateBy);
|
@Param("updateBy") String updateBy);
|
||||||
|
|
||||||
|
/** 批量插入纸质归档材料 */
|
||||||
|
int batchInsertArchivePaper(@Param("list") List<ContractLaunchArchivePaperDto> list,
|
||||||
|
@Param("createBy") String createBy,
|
||||||
|
@Param("updateBy") String updateBy);
|
||||||
|
|
||||||
|
/** 批量插入电子归档材料 */
|
||||||
|
int batchInsertArchiveEle(@Param("list") List<ContractLaunchArchiveEleDto> list,
|
||||||
|
@Param("createBy") String createBy,
|
||||||
|
@Param("updateBy") String updateBy);
|
||||||
|
|
||||||
/** 插入单条操作日志 */
|
/** 插入单条操作日志 */
|
||||||
int insertLog(ContractLaunchLogDto logDto);
|
int insertLog(ContractLaunchLogDto logDto);
|
||||||
|
|
||||||
@@ -87,6 +105,14 @@ public interface ContractLaunchMapper {
|
|||||||
int deletePlanByContractId(@Param("contractId") Long contractId,
|
int deletePlanByContractId(@Param("contractId") Long contractId,
|
||||||
@Param("updateBy") String updateBy);
|
@Param("updateBy") String updateBy);
|
||||||
|
|
||||||
|
/** 删除合同下的纸质归档材料(逻辑删除) */
|
||||||
|
int deleteArchivePaperByContractId(@Param("contractId") Long contractId,
|
||||||
|
@Param("updateBy") String updateBy);
|
||||||
|
|
||||||
|
/** 删除合同下的电子归档材料(逻辑删除) */
|
||||||
|
int deleteArchiveEleByContractId(@Param("contractId") Long contractId,
|
||||||
|
@Param("updateBy") String updateBy);
|
||||||
|
|
||||||
/** 批量查询合同方(按 contractIds) */
|
/** 批量查询合同方(按 contractIds) */
|
||||||
List<ContractLaunchPartyDto> selectPartyByContractIds(@Param("contractIds") List<Long> contractIds);
|
List<ContractLaunchPartyDto> selectPartyByContractIds(@Param("contractIds") List<Long> contractIds);
|
||||||
|
|
||||||
@@ -96,6 +122,12 @@ public interface ContractLaunchMapper {
|
|||||||
/** 批量查询履行计划(按 contractIds) */
|
/** 批量查询履行计划(按 contractIds) */
|
||||||
List<ContractLaunchPlanDto> selectPlanByContractIds(@Param("contractIds") List<Long> contractIds);
|
List<ContractLaunchPlanDto> selectPlanByContractIds(@Param("contractIds") List<Long> contractIds);
|
||||||
|
|
||||||
|
/** 批量查询纸质归档材料(按 contractIds) */
|
||||||
|
List<ContractLaunchArchivePaperDto> selectArchivePaperByContractIds(@Param("contractIds") List<Long> contractIds);
|
||||||
|
|
||||||
|
/** 批量查询电子归档材料(按 contractIds) */
|
||||||
|
List<ContractLaunchArchiveEleDto> selectArchiveEleByContractIds(@Param("contractIds") List<Long> contractIds);
|
||||||
|
|
||||||
/** 批量查询操作日志(按 contractIds) */
|
/** 批量查询操作日志(按 contractIds) */
|
||||||
List<ContractLaunchLogDto> selectLogByContractIds(@Param("contractIds") List<Long> contractIds);
|
List<ContractLaunchLogDto> selectLogByContractIds(@Param("contractIds") List<Long> contractIds);
|
||||||
}
|
}
|
||||||
|
|||||||
+186
-32
@@ -6,6 +6,8 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
|||||||
import com.nbport.zgwl.common.PageResult;
|
import com.nbport.zgwl.common.PageResult;
|
||||||
import com.nbport.zgwl.contractlaunch.dto.ContractLaunchApproveDto;
|
import com.nbport.zgwl.contractlaunch.dto.ContractLaunchApproveDto;
|
||||||
import com.nbport.zgwl.contractlaunch.dto.ContractLaunchArchiveDto;
|
import com.nbport.zgwl.contractlaunch.dto.ContractLaunchArchiveDto;
|
||||||
|
import com.nbport.zgwl.contractlaunch.dto.ContractLaunchArchiveEleDto;
|
||||||
|
import com.nbport.zgwl.contractlaunch.dto.ContractLaunchArchivePaperDto;
|
||||||
import com.nbport.zgwl.contractlaunch.dto.ContractLaunchDto;
|
import com.nbport.zgwl.contractlaunch.dto.ContractLaunchDto;
|
||||||
import com.nbport.zgwl.contractlaunch.dto.ContractLaunchFileDto;
|
import com.nbport.zgwl.contractlaunch.dto.ContractLaunchFileDto;
|
||||||
import com.nbport.zgwl.contractlaunch.dto.ContractLaunchLogDto;
|
import com.nbport.zgwl.contractlaunch.dto.ContractLaunchLogDto;
|
||||||
@@ -489,32 +491,29 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
|||||||
throw new ServiceException("当前状态不允许归档");
|
throw new ServiceException("当前状态不允许归档");
|
||||||
}
|
}
|
||||||
SysUserEntity currentUser = adminSecurityManage.getUser();
|
SysUserEntity currentUser = adminSecurityManage.getUser();
|
||||||
contract.setArchiveDate(LocalDateTime.now());
|
validateArchiveRequest(archiveDto);
|
||||||
contract.setArchiveKeeper(archiveDto == null ? null : archiveDto.getArchiveKeeper());
|
LocalDateTime now = LocalDateTime.now();
|
||||||
contract.setArchiveKeeperUnit(archiveDto == null ? null : archiveDto.getArchiveKeeperUnit());
|
contract.setArchiveDate(now);
|
||||||
contract.setArchiveKeeperUnitCode(archiveDto == null ? null : archiveDto.getArchiveKeeperUnitCode());
|
contract.setArchiveReceiveDept(archiveDto.getArchiveReceiveDept());
|
||||||
|
contract.setArchiveTransferor(archiveDto.getArchiveTransferor());
|
||||||
|
contract.setArchiveKeeper(currentUser.getMobilePhone() == null || currentUser.getMobilePhone().isBlank()
|
||||||
|
? archiveDto.getArchiveTransferor()
|
||||||
|
: currentUser.getMobilePhone());
|
||||||
|
contract.setArchiveKeeperUnit(currentUser.getSysOrgEntity() == null ? contract.getArchiveKeeperUnit() : currentUser.getSysOrgEntity().getOrgName());
|
||||||
|
contract.setArchiveKeeperUnitCode(currentUser.getSysOrgEntity() == null ? contract.getArchiveKeeperUnitCode() : currentUser.getSysOrgEntity().getId());
|
||||||
contract.setStatus(ContractLaunchConstants.STATUS_COMPLETED);
|
contract.setStatus(ContractLaunchConstants.STATUS_COMPLETED);
|
||||||
contract.setUpdateBy(currentUser.getUsername());
|
contract.setUpdateBy(currentUser.getUsername());
|
||||||
contract.setUpdateTime(LocalDateTime.now());
|
contract.setUpdateTime(now);
|
||||||
contractLaunchMapper.updateContract(contract);
|
contractLaunchMapper.updateContract(contract);
|
||||||
|
replaceArchiveChildren(id, archiveDto, currentUser.getUsername());
|
||||||
|
|
||||||
if (archiveDto != null && archiveDto.getArchiveFiles() != null && !archiveDto.getArchiveFiles().isEmpty()) {
|
Map<String, Object> payload = buildArchivePayload(contract, archiveDto, false);
|
||||||
for (ContractLaunchFileDto fileDto : archiveDto.getArchiveFiles()) {
|
|
||||||
fileDto.setId(contractLaunchMapper.selectFileSeqNextVal());
|
|
||||||
fileDto.setContractId(id);
|
|
||||||
fileDto.setFileCategory(ContractLaunchConstants.FILE_CATEGORY_ARCHIVE);
|
|
||||||
}
|
|
||||||
contractLaunchMapper.batchInsertFile(archiveDto.getArchiveFiles(), currentUser.getUsername(), currentUser.getUsername());
|
|
||||||
}
|
|
||||||
|
|
||||||
Map<String, Object> payload = buildArchivePayload(contract, archiveDto);
|
|
||||||
log.info("合同归档参数:{}", JsonUtils.toJson(payload));
|
log.info("合同归档参数:{}", JsonUtils.toJson(payload));
|
||||||
insertLog(id, ContractLaunchConstants.ACTION_ARCHIVE, "合同归档", ContractLaunchConstants.ACTION_STATUS_PENDING, "合同归档接口当前先注释,使用测试按钮流转", payload, currentUser);
|
insertLog(id, ContractLaunchConstants.ACTION_ARCHIVE, "合同归档", ContractLaunchConstants.ACTION_STATUS_PENDING, "合同归档接口当前先注释,使用测试按钮流转", payload, currentUser);
|
||||||
|
|
||||||
// TODO: 法务接口当前不可用,真实联调时打开下面调用即可
|
// TODO: 法务接口当前不可用,真实联调时打开下面调用即可
|
||||||
// PushPayloadDTO requestDTO = new PushPayloadDTO();
|
// PushPayloadDTO requestDTO = new PushPayloadDTO();
|
||||||
// requestDTO.setPayload(payload);
|
// requestDTO.setPayload(buildArchivePayload(contract, archiveDto, true));
|
||||||
// settlementPushService.pushArchive(requestDTO);
|
|
||||||
// dataCollectionPushService.collectContractArchive(requestDTO);
|
// dataCollectionPushService.collectContractArchive(requestDTO);
|
||||||
|
|
||||||
return getDetail(id);
|
return getDetail(id);
|
||||||
@@ -791,14 +790,26 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
|||||||
.collect(Collectors.groupingBy(ContractLaunchFileDto::getContractId));
|
.collect(Collectors.groupingBy(ContractLaunchFileDto::getContractId));
|
||||||
Map<Long, List<ContractLaunchPlanDto>> planMap = contractLaunchMapper.selectPlanByContractIds(ids).stream()
|
Map<Long, List<ContractLaunchPlanDto>> planMap = contractLaunchMapper.selectPlanByContractIds(ids).stream()
|
||||||
.collect(Collectors.groupingBy(ContractLaunchPlanDto::getContractId));
|
.collect(Collectors.groupingBy(ContractLaunchPlanDto::getContractId));
|
||||||
|
Map<Long, List<ContractLaunchArchivePaperDto>> archivePaperMap = contractLaunchMapper.selectArchivePaperByContractIds(ids).stream()
|
||||||
|
.collect(Collectors.groupingBy(ContractLaunchArchivePaperDto::getContractId));
|
||||||
|
Map<Long, List<ContractLaunchArchiveEleDto>> archiveEleMap = contractLaunchMapper.selectArchiveEleByContractIds(ids).stream()
|
||||||
|
.collect(Collectors.groupingBy(ContractLaunchArchiveEleDto::getContractId));
|
||||||
Map<Long, List<ContractLaunchLogDto>> logMap = includeLogs
|
Map<Long, List<ContractLaunchLogDto>> logMap = includeLogs
|
||||||
? contractLaunchMapper.selectLogByContractIds(ids).stream().collect(Collectors.groupingBy(ContractLaunchLogDto::getContractId))
|
? contractLaunchMapper.selectLogByContractIds(ids).stream().collect(Collectors.groupingBy(ContractLaunchLogDto::getContractId))
|
||||||
: Collections.emptyMap();
|
: Collections.emptyMap();
|
||||||
|
|
||||||
list.forEach(item -> {
|
list.forEach(item -> {
|
||||||
item.setPartyList(new ArrayList<>(partyMap.getOrDefault(item.getId(), Collections.emptyList())));
|
item.setPartyList(new ArrayList<>(partyMap.getOrDefault(item.getId(), Collections.emptyList())));
|
||||||
item.setFileList(new ArrayList<>(fileMap.getOrDefault(item.getId(), Collections.emptyList())));
|
List<ContractLaunchFileDto> contractFiles = new ArrayList<>(fileMap.getOrDefault(item.getId(), Collections.emptyList()));
|
||||||
|
item.setFileList(contractFiles);
|
||||||
item.setPerformancePlans(new ArrayList<>(planMap.getOrDefault(item.getId(), Collections.emptyList())));
|
item.setPerformancePlans(new ArrayList<>(planMap.getOrDefault(item.getId(), Collections.emptyList())));
|
||||||
|
item.setArchivePapers(new ArrayList<>(archivePaperMap.getOrDefault(item.getId(), Collections.emptyList())));
|
||||||
|
List<ContractLaunchArchiveEleDto> archiveEles = new ArrayList<>(archiveEleMap.getOrDefault(item.getId(), Collections.emptyList()));
|
||||||
|
Map<Long, List<ContractLaunchFileDto>> archiveFileMap = contractFiles.stream()
|
||||||
|
.filter(file -> ContractLaunchConstants.FILE_CATEGORY_ARCHIVE.equals(file.getFileCategory()) && file.getArchiveEleId() != null)
|
||||||
|
.collect(Collectors.groupingBy(ContractLaunchFileDto::getArchiveEleId));
|
||||||
|
archiveEles.forEach(ele -> ele.setApprovalAttachs(new ArrayList<>(archiveFileMap.getOrDefault(ele.getId(), Collections.emptyList()))));
|
||||||
|
item.setArchiveEles(archiveEles);
|
||||||
item.setLogList(new ArrayList<>(logMap.getOrDefault(item.getId(), Collections.emptyList())));
|
item.setLogList(new ArrayList<>(logMap.getOrDefault(item.getId(), Collections.emptyList())));
|
||||||
item.setCounterpartySummary(
|
item.setCounterpartySummary(
|
||||||
item.getPartyList().stream()
|
item.getPartyList().stream()
|
||||||
@@ -1263,16 +1274,16 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
|||||||
return "GZBSQRQZ".equals(sealType) || "HTZYZBSQRQZ".equals(sealType);
|
return "GZBSQRQZ".equals(sealType) || "HTZYZBSQRQZ".equals(sealType);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 构建归档报文(pushArchive 接口的 payload) */
|
/** 构建归档报文(数据采集 V3.0 collectContractArchive 接口的 payload) */
|
||||||
private Map<String, Object> buildArchivePayload(ContractLaunchDto contract, ContractLaunchArchiveDto archiveDto) {
|
private Map<String, Object> buildArchivePayload(ContractLaunchDto contract, ContractLaunchArchiveDto archiveDto, boolean useLegalFilePayload) {
|
||||||
Map<String, Object> payload = new LinkedHashMap<>();
|
Map<String, Object> payload = new LinkedHashMap<>();
|
||||||
payload.put("contractCode", contract.getLawContractCode());
|
payload.put("c_code", contract.getLawContractCode() == null || contract.getLawContractCode().isBlank()
|
||||||
payload.put("contractSysId", contract.getContractSysId());
|
? contract.getContractCode()
|
||||||
payload.put("Keeper", archiveDto == null ? null : archiveDto.getArchiveKeeper());
|
: contract.getLawContractCode());
|
||||||
payload.put("KeeperUnit", archiveDto == null ? null : archiveDto.getArchiveKeeperUnit());
|
payload.put("c_receiveDept", archiveDto == null ? null : archiveDto.getArchiveReceiveDept());
|
||||||
payload.put("KeeperUnitCode", archiveDto == null ? null : archiveDto.getArchiveKeeperUnitCode());
|
payload.put("c_transferor", archiveDto == null ? null : archiveDto.getArchiveTransferor());
|
||||||
payload.put("archivePapers", List.of());
|
payload.put("c_papers", buildCollectionArchivePaperList(archiveDto));
|
||||||
payload.put("archiveEles", buildSettlementArchiveEleList(archiveDto));
|
payload.put("c_elcs", buildCollectionArchiveEleList(archiveDto, useLegalFilePayload));
|
||||||
return payload;
|
return payload;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1299,20 +1310,69 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<Map<String, Object>> buildSettlementArchiveEleList(ContractLaunchArchiveDto archiveDto) {
|
private List<Map<String, Object>> buildCollectionArchivePaperList(ContractLaunchArchiveDto archiveDto) {
|
||||||
if (archiveDto == null || archiveDto.getArchiveFiles() == null || archiveDto.getArchiveFiles().isEmpty()) {
|
if (archiveDto == null || archiveDto.getArchivePapers() == null || archiveDto.getArchivePapers().isEmpty()) {
|
||||||
return List.of();
|
return List.of();
|
||||||
}
|
}
|
||||||
return archiveDto.getArchiveFiles().stream()
|
return archiveDto.getArchivePapers().stream()
|
||||||
.map(item -> {
|
.map(item -> {
|
||||||
Map<String, Object> map = new LinkedHashMap<>();
|
Map<String, Object> map = new LinkedHashMap<>();
|
||||||
map.put("archivesName", item.getFileName());
|
map.put("archivesName", item.getArchivesName());
|
||||||
map.put("approvalAttachs", List.of(legalFileBridgeService.buildSettlementPayload(item)));
|
map.put("archivesNum", item.getArchivesNum());
|
||||||
|
map.put("archivesTime", item.getArchivesTime());
|
||||||
return map;
|
return map;
|
||||||
})
|
})
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<Map<String, Object>> buildCollectionArchiveEleList(ContractLaunchArchiveDto archiveDto, boolean useLegalFilePayload) {
|
||||||
|
if (archiveDto == null || archiveDto.getArchiveEles() == null || archiveDto.getArchiveEles().isEmpty()) {
|
||||||
|
return List.of();
|
||||||
|
}
|
||||||
|
return archiveDto.getArchiveEles().stream()
|
||||||
|
.map(item -> {
|
||||||
|
Map<String, Object> map = new LinkedHashMap<>();
|
||||||
|
map.put("archivesName", item.getArchivesName());
|
||||||
|
map.put("approvalAttachs", item.getApprovalAttachs().stream()
|
||||||
|
.map(file -> buildArchiveCollectionFilePayload(file, useLegalFilePayload))
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.collect(Collectors.toList()));
|
||||||
|
return map;
|
||||||
|
})
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
private Map<String, Object> buildArchiveCollectionFilePayload(ContractLaunchFileDto fileDto, boolean useLegalFilePayload) {
|
||||||
|
if (fileDto == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (useLegalFilePayload) {
|
||||||
|
return legalFileBridgeService.buildCollectionPayload(fileDto);
|
||||||
|
}
|
||||||
|
if (fileDto.getFilePath() == null || fileDto.getFilePath().isBlank()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
Map<String, Object> map = new LinkedHashMap<>();
|
||||||
|
map.put("size", fileDto.getFileSize() == null ? "" : String.valueOf(fileDto.getFileSize()));
|
||||||
|
map.put("name", fileDto.getFileName());
|
||||||
|
map.put("suffix", resolveArchiveFileSuffix(fileDto));
|
||||||
|
map.put("path", fileDto.getFilePath());
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String resolveArchiveFileSuffix(ContractLaunchFileDto fileDto) {
|
||||||
|
String fileType = trim(fileDto.getFileType());
|
||||||
|
if (fileType != null && !fileType.isBlank()) {
|
||||||
|
return fileType.startsWith(".") ? fileType.substring(1) : fileType;
|
||||||
|
}
|
||||||
|
String fileName = trim(fileDto.getFileName());
|
||||||
|
if (fileName == null) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
int index = fileName.lastIndexOf('.');
|
||||||
|
return index >= 0 && index < fileName.length() - 1 ? fileName.substring(index + 1) : "";
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 如果 signedFilePath 是外部URL,则下载到本地并返回本地路径;
|
* 如果 signedFilePath 是外部URL,则下载到本地并返回本地路径;
|
||||||
* 如果已是本地路径则直接返回。
|
* 如果已是本地路径则直接返回。
|
||||||
@@ -1413,6 +1473,100 @@ public class ContractLaunchServiceImpl implements ContractLaunchService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void replaceArchiveChildren(Long contractId, ContractLaunchArchiveDto archiveDto, String operator) {
|
||||||
|
contractLaunchMapper.deleteArchivePaperByContractId(contractId, operator);
|
||||||
|
contractLaunchMapper.deleteArchiveEleByContractId(contractId, operator);
|
||||||
|
contractLaunchMapper.deleteFileByContractIdAndCategory(contractId, ContractLaunchConstants.FILE_CATEGORY_ARCHIVE, operator);
|
||||||
|
|
||||||
|
if (archiveDto == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<ContractLaunchArchivePaperDto> papers = archiveDto.getArchivePapers();
|
||||||
|
if (papers != null && !papers.isEmpty()) {
|
||||||
|
for (int i = 0; i < papers.size(); i++) {
|
||||||
|
ContractLaunchArchivePaperDto paper = papers.get(i);
|
||||||
|
paper.setId(contractLaunchMapper.selectArchivePaperSeqNextVal());
|
||||||
|
paper.setContractId(contractId);
|
||||||
|
paper.setSortOrder(i + 1);
|
||||||
|
}
|
||||||
|
contractLaunchMapper.batchInsertArchivePaper(papers, operator, operator);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<ContractLaunchArchiveEleDto> eles = archiveDto.getArchiveEles();
|
||||||
|
if (eles != null && !eles.isEmpty()) {
|
||||||
|
List<ContractLaunchFileDto> archiveFiles = new ArrayList<>();
|
||||||
|
for (int i = 0; i < eles.size(); i++) {
|
||||||
|
ContractLaunchArchiveEleDto ele = eles.get(i);
|
||||||
|
ele.setId(contractLaunchMapper.selectArchiveEleSeqNextVal());
|
||||||
|
ele.setContractId(contractId);
|
||||||
|
ele.setSortOrder(i + 1);
|
||||||
|
List<ContractLaunchFileDto> attachs = ele.getApprovalAttachs();
|
||||||
|
if (attachs == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
for (int j = 0; j < attachs.size(); j++) {
|
||||||
|
ContractLaunchFileDto file = attachs.get(j);
|
||||||
|
file.setId(contractLaunchMapper.selectFileSeqNextVal());
|
||||||
|
file.setContractId(contractId);
|
||||||
|
file.setFileCategory(ContractLaunchConstants.FILE_CATEGORY_ARCHIVE);
|
||||||
|
file.setArchiveEleId(ele.getId());
|
||||||
|
file.setSortOrder(j + 1);
|
||||||
|
archiveFiles.add(file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
contractLaunchMapper.batchInsertArchiveEle(eles, operator, operator);
|
||||||
|
if (!archiveFiles.isEmpty()) {
|
||||||
|
contractLaunchMapper.batchInsertFile(archiveFiles, operator, operator);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateArchiveRequest(ContractLaunchArchiveDto archiveDto) {
|
||||||
|
if (archiveDto == null) {
|
||||||
|
throw new ServiceException("归档信息不能为空");
|
||||||
|
}
|
||||||
|
if (archiveDto.getArchiveReceiveDept() == null || archiveDto.getArchiveReceiveDept().isBlank()) {
|
||||||
|
throw new ServiceException("归档接收部门编码不能为空");
|
||||||
|
}
|
||||||
|
if (archiveDto.getArchiveTransferor() == null || archiveDto.getArchiveTransferor().isBlank()) {
|
||||||
|
throw new ServiceException("移交人账号不能为空");
|
||||||
|
}
|
||||||
|
if (archiveDto.getArchivePapers() == null || archiveDto.getArchivePapers().isEmpty()) {
|
||||||
|
throw new ServiceException("纸质档案材料不能为空");
|
||||||
|
}
|
||||||
|
for (ContractLaunchArchivePaperDto paper : archiveDto.getArchivePapers()) {
|
||||||
|
if (paper.getArchivesName() == null || paper.getArchivesName().isBlank()) {
|
||||||
|
throw new ServiceException("纸质档案名称不能为空");
|
||||||
|
}
|
||||||
|
if (paper.getArchivesNum() == null || paper.getArchivesNum().isBlank()) {
|
||||||
|
throw new ServiceException("纸质档案份数不能为空");
|
||||||
|
}
|
||||||
|
if (paper.getArchivesTime() == null) {
|
||||||
|
throw new ServiceException("纸质档案归档时间不能为空");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (archiveDto.getArchiveEles() == null || archiveDto.getArchiveEles().isEmpty()) {
|
||||||
|
throw new ServiceException("电子档案材料不能为空");
|
||||||
|
}
|
||||||
|
for (ContractLaunchArchiveEleDto ele : archiveDto.getArchiveEles()) {
|
||||||
|
if (ele.getArchivesName() == null || ele.getArchivesName().isBlank()) {
|
||||||
|
throw new ServiceException("电子档案名称不能为空");
|
||||||
|
}
|
||||||
|
if (ele.getApprovalAttachs() == null || ele.getApprovalAttachs().isEmpty()) {
|
||||||
|
throw new ServiceException("电子档案附件不能为空");
|
||||||
|
}
|
||||||
|
for (ContractLaunchFileDto file : ele.getApprovalAttachs()) {
|
||||||
|
if (file.getFileName() == null || file.getFileName().isBlank()) {
|
||||||
|
throw new ServiceException("电子档案附件文件名不能为空");
|
||||||
|
}
|
||||||
|
if (file.getFilePath() == null || file.getFilePath().isBlank()) {
|
||||||
|
throw new ServiceException("电子档案附件路径不能为空");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private boolean isPlanAmountRequired(String valuationMode) {
|
private boolean isPlanAmountRequired(String valuationMode) {
|
||||||
return !"0".equals(valuationMode) && !"3".equals(valuationMode);
|
return !"0".equals(valuationMode) && !"3".equals(valuationMode);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,6 +82,8 @@
|
|||||||
<result property="sealDate" column="SEAL_DATE"/>
|
<result property="sealDate" column="SEAL_DATE"/>
|
||||||
<result property="activeDate" column="ACTIVE_DATE"/>
|
<result property="activeDate" column="ACTIVE_DATE"/>
|
||||||
<result property="archiveDate" column="ARCHIVE_DATE"/>
|
<result property="archiveDate" column="ARCHIVE_DATE"/>
|
||||||
|
<result property="archiveReceiveDept" column="ARCHIVE_RECEIVE_DEPT"/>
|
||||||
|
<result property="archiveTransferor" column="ARCHIVE_TRANSFEROR"/>
|
||||||
<result property="archiveKeeper" column="ARCHIVE_KEEPER"/>
|
<result property="archiveKeeper" column="ARCHIVE_KEEPER"/>
|
||||||
<result property="archiveKeeperUnit" column="ARCHIVE_KEEPER_UNIT"/>
|
<result property="archiveKeeperUnit" column="ARCHIVE_KEEPER_UNIT"/>
|
||||||
<result property="archiveKeeperUnitCode" column="ARCHIVE_KEEPER_UNIT_CODE"/>
|
<result property="archiveKeeperUnitCode" column="ARCHIVE_KEEPER_UNIT_CODE"/>
|
||||||
@@ -132,6 +134,7 @@
|
|||||||
<id property="id" column="ID"/>
|
<id property="id" column="ID"/>
|
||||||
<result property="contractId" column="CONTRACT_ID"/>
|
<result property="contractId" column="CONTRACT_ID"/>
|
||||||
<result property="fileCategory" column="FILE_CATEGORY"/>
|
<result property="fileCategory" column="FILE_CATEGORY"/>
|
||||||
|
<result property="archiveEleId" column="ARCHIVE_ELE_ID"/>
|
||||||
<result property="fileName" column="FILE_NAME"/>
|
<result property="fileName" column="FILE_NAME"/>
|
||||||
<result property="filePath" column="FILE_PATH"/>
|
<result property="filePath" column="FILE_PATH"/>
|
||||||
<result property="legalFileUrl" column="LEGAL_FILE_URL"/>
|
<result property="legalFileUrl" column="LEGAL_FILE_URL"/>
|
||||||
@@ -141,6 +144,24 @@
|
|||||||
<result property="remark" column="REMARK"/>
|
<result property="remark" column="REMARK"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
|
<resultMap id="ArchivePaperResult" type="com.nbport.zgwl.contractlaunch.dto.ContractLaunchArchivePaperDto">
|
||||||
|
<id property="id" column="ID"/>
|
||||||
|
<result property="contractId" column="CONTRACT_ID"/>
|
||||||
|
<result property="archivesName" column="ARCHIVES_NAME"/>
|
||||||
|
<result property="archivesNum" column="ARCHIVES_NUM"/>
|
||||||
|
<result property="archivesTime" column="ARCHIVES_TIME"/>
|
||||||
|
<result property="sortOrder" column="SORT_ORDER"/>
|
||||||
|
<result property="remark" column="REMARK"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<resultMap id="ArchiveEleResult" type="com.nbport.zgwl.contractlaunch.dto.ContractLaunchArchiveEleDto">
|
||||||
|
<id property="id" column="ID"/>
|
||||||
|
<result property="contractId" column="CONTRACT_ID"/>
|
||||||
|
<result property="archivesName" column="ARCHIVES_NAME"/>
|
||||||
|
<result property="sortOrder" column="SORT_ORDER"/>
|
||||||
|
<result property="remark" column="REMARK"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
<resultMap id="PlanResult" type="com.nbport.zgwl.contractlaunch.dto.ContractLaunchPlanDto">
|
<resultMap id="PlanResult" type="com.nbport.zgwl.contractlaunch.dto.ContractLaunchPlanDto">
|
||||||
<id property="id" column="ID"/>
|
<id property="id" column="ID"/>
|
||||||
<result property="contractId" column="CONTRACT_ID"/>
|
<result property="contractId" column="CONTRACT_ID"/>
|
||||||
@@ -185,7 +206,7 @@
|
|||||||
EW_AMOUNT_TYPE, DJ_AMOUNT, YJ_AMOUNT, YFK_AMOUNT, BZJ_AMOUNT, BODY_SUMMARY,
|
EW_AMOUNT_TYPE, DJ_AMOUNT, YJ_AMOUNT, YFK_AMOUNT, BZJ_AMOUNT, BODY_SUMMARY,
|
||||||
CONTRACT_TEXT_FILE_NAME, CONTRACT_TEXT_FILE_PATH, CONTRACT_TEXT_FILE_TYPE, CONTRACT_TEXT_FILE_SIZE,
|
CONTRACT_TEXT_FILE_NAME, CONTRACT_TEXT_FILE_PATH, CONTRACT_TEXT_FILE_TYPE, CONTRACT_TEXT_FILE_SIZE,
|
||||||
SIGNED_FILE_NAME, SIGNED_FILE_PATH, SIGNED_FILE_TYPE, SIGNED_FILE_SIZE, SIGNED_FILE_URL, SIGNED_OFFLINE_REASON,
|
SIGNED_FILE_NAME, SIGNED_FILE_PATH, SIGNED_FILE_TYPE, SIGNED_FILE_SIZE, SIGNED_FILE_URL, SIGNED_OFFLINE_REASON,
|
||||||
SIGN_DATE, SEAL_DATE, ACTIVE_DATE, ARCHIVE_DATE, ARCHIVE_KEEPER, ARCHIVE_KEEPER_UNIT,
|
SIGN_DATE, SEAL_DATE, ACTIVE_DATE, ARCHIVE_DATE, ARCHIVE_RECEIVE_DEPT, ARCHIVE_TRANSFEROR, ARCHIVE_KEEPER, ARCHIVE_KEEPER_UNIT,
|
||||||
ARCHIVE_KEEPER_UNIT_CODE, INVOICE_DATE, RECEIVE_DATE, REMIND_DAYS,
|
ARCHIVE_KEEPER_UNIT_CODE, INVOICE_DATE, RECEIVE_DATE, REMIND_DAYS,
|
||||||
INITIATOR, INITIATOR_DEPT, COMPANY_NAME, ORG_ID, QUERY_SCOPE,
|
INITIATOR, INITIATOR_DEPT, COMPANY_NAME, ORG_ID, QUERY_SCOPE,
|
||||||
CREATE_BY, CREATE_TIME, UPDATE_BY, UPDATE_TIME, IS_DELETED, REMARK
|
CREATE_BY, CREATE_TIME, UPDATE_BY, UPDATE_TIME, IS_DELETED, REMARK
|
||||||
@@ -207,6 +228,12 @@
|
|||||||
<select id="selectLogSeqNextVal" resultType="java.lang.Long" useCache="false" flushCache="true">
|
<select id="selectLogSeqNextVal" resultType="java.lang.Long" useCache="false" flushCache="true">
|
||||||
select SEQ_SEAL_CONTRACT_LAUNCH_LOG.NEXTVAL from dual
|
select SEQ_SEAL_CONTRACT_LAUNCH_LOG.NEXTVAL from dual
|
||||||
</select>
|
</select>
|
||||||
|
<select id="selectArchivePaperSeqNextVal" resultType="java.lang.Long" useCache="false" flushCache="true">
|
||||||
|
select SEQ_SEAL_CONTRACT_LAUNCH_AR_PAPER.NEXTVAL from dual
|
||||||
|
</select>
|
||||||
|
<select id="selectArchiveEleSeqNextVal" resultType="java.lang.Long" useCache="false" flushCache="true">
|
||||||
|
select SEQ_SEAL_CONTRACT_LAUNCH_AR_ELE.NEXTVAL from dual
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="selectContractPage" resultMap="ContractLaunchResult">
|
<select id="selectContractPage" resultMap="ContractLaunchResult">
|
||||||
<include refid="mainColumns"/>
|
<include refid="mainColumns"/>
|
||||||
@@ -263,7 +290,7 @@
|
|||||||
TEMPLATE_FIELD_VALUES_JSON,
|
TEMPLATE_FIELD_VALUES_JSON,
|
||||||
CONTRACT_TEXT_FILE_NAME, CONTRACT_TEXT_FILE_PATH, CONTRACT_TEXT_FILE_TYPE, CONTRACT_TEXT_FILE_SIZE,
|
CONTRACT_TEXT_FILE_NAME, CONTRACT_TEXT_FILE_PATH, CONTRACT_TEXT_FILE_TYPE, CONTRACT_TEXT_FILE_SIZE,
|
||||||
SIGNED_FILE_NAME, SIGNED_FILE_PATH, SIGNED_FILE_TYPE, SIGNED_FILE_SIZE, SIGNED_FILE_URL, SIGNED_OFFLINE_REASON,
|
SIGNED_FILE_NAME, SIGNED_FILE_PATH, SIGNED_FILE_TYPE, SIGNED_FILE_SIZE, SIGNED_FILE_URL, SIGNED_OFFLINE_REASON,
|
||||||
SIGN_DATE, SEAL_DATE, ACTIVE_DATE, ARCHIVE_DATE, ARCHIVE_KEEPER, ARCHIVE_KEEPER_UNIT,
|
SIGN_DATE, SEAL_DATE, ACTIVE_DATE, ARCHIVE_DATE, ARCHIVE_RECEIVE_DEPT, ARCHIVE_TRANSFEROR, ARCHIVE_KEEPER, ARCHIVE_KEEPER_UNIT,
|
||||||
ARCHIVE_KEEPER_UNIT_CODE, INVOICE_DATE, RECEIVE_DATE, REMIND_DAYS,
|
ARCHIVE_KEEPER_UNIT_CODE, INVOICE_DATE, RECEIVE_DATE, REMIND_DAYS,
|
||||||
INITIATOR, INITIATOR_DEPT, COMPANY_NAME, ORG_ID, QUERY_SCOPE,
|
INITIATOR, INITIATOR_DEPT, COMPANY_NAME, ORG_ID, QUERY_SCOPE,
|
||||||
CREATE_BY, CREATE_TIME, UPDATE_BY, UPDATE_TIME, IS_DELETED, REMARK
|
CREATE_BY, CREATE_TIME, UPDATE_BY, UPDATE_TIME, IS_DELETED, REMARK
|
||||||
@@ -283,7 +310,7 @@
|
|||||||
#{templateFieldValuesJson},
|
#{templateFieldValuesJson},
|
||||||
#{contractTextFileName}, #{contractTextFilePath}, #{contractTextFileType}, #{contractTextFileSize},
|
#{contractTextFileName}, #{contractTextFilePath}, #{contractTextFileType}, #{contractTextFileSize},
|
||||||
#{signedFileName}, #{signedFilePath}, #{signedFileType}, #{signedFileSize}, #{signedFileUrl}, #{signedOfflineReason},
|
#{signedFileName}, #{signedFilePath}, #{signedFileType}, #{signedFileSize}, #{signedFileUrl}, #{signedOfflineReason},
|
||||||
#{signDate}, #{sealDate}, #{activeDate}, #{archiveDate}, #{archiveKeeper}, #{archiveKeeperUnit},
|
#{signDate}, #{sealDate}, #{activeDate}, #{archiveDate}, #{archiveReceiveDept}, #{archiveTransferor}, #{archiveKeeper}, #{archiveKeeperUnit},
|
||||||
#{archiveKeeperUnitCode}, #{invoiceDate}, #{receiveDate}, #{remindDays},
|
#{archiveKeeperUnitCode}, #{invoiceDate}, #{receiveDate}, #{remindDays},
|
||||||
#{initiator}, #{initiatorDept}, #{companyName}, #{orgId}, #{queryScope},
|
#{initiator}, #{initiatorDept}, #{companyName}, #{orgId}, #{queryScope},
|
||||||
#{createBy}, #{createTime}, #{updateBy}, #{updateTime}, #{isDeleted}, #{remark}
|
#{createBy}, #{createTime}, #{updateBy}, #{updateTime}, #{isDeleted}, #{remark}
|
||||||
@@ -369,6 +396,8 @@
|
|||||||
SEAL_DATE = #{sealDate},
|
SEAL_DATE = #{sealDate},
|
||||||
ACTIVE_DATE = #{activeDate},
|
ACTIVE_DATE = #{activeDate},
|
||||||
ARCHIVE_DATE = #{archiveDate},
|
ARCHIVE_DATE = #{archiveDate},
|
||||||
|
ARCHIVE_RECEIVE_DEPT = #{archiveReceiveDept},
|
||||||
|
ARCHIVE_TRANSFEROR = #{archiveTransferor},
|
||||||
ARCHIVE_KEEPER = #{archiveKeeper},
|
ARCHIVE_KEEPER = #{archiveKeeper},
|
||||||
ARCHIVE_KEEPER_UNIT = #{archiveKeeperUnit},
|
ARCHIVE_KEEPER_UNIT = #{archiveKeeperUnit},
|
||||||
ARCHIVE_KEEPER_UNIT_CODE = #{archiveKeeperUnitCode},
|
ARCHIVE_KEEPER_UNIT_CODE = #{archiveKeeperUnitCode},
|
||||||
@@ -422,10 +451,10 @@
|
|||||||
INSERT ALL
|
INSERT ALL
|
||||||
<foreach collection="list" item="item">
|
<foreach collection="list" item="item">
|
||||||
INTO SEAL_CONTRACT_LAUNCH_FILE (
|
INTO SEAL_CONTRACT_LAUNCH_FILE (
|
||||||
ID, CONTRACT_ID, FILE_CATEGORY, FILE_NAME, FILE_PATH, LEGAL_FILE_URL, FILE_TYPE, FILE_SIZE,
|
ID, CONTRACT_ID, FILE_CATEGORY, ARCHIVE_ELE_ID, FILE_NAME, FILE_PATH, LEGAL_FILE_URL, FILE_TYPE, FILE_SIZE,
|
||||||
SORT_ORDER, CREATE_BY, CREATE_TIME, UPDATE_BY, UPDATE_TIME, IS_DELETED, REMARK
|
SORT_ORDER, CREATE_BY, CREATE_TIME, UPDATE_BY, UPDATE_TIME, IS_DELETED, REMARK
|
||||||
) VALUES (
|
) VALUES (
|
||||||
#{item.id}, #{item.contractId}, #{item.fileCategory}, #{item.fileName}, #{item.filePath}, #{item.legalFileUrl}, #{item.fileType}, #{item.fileSize},
|
#{item.id}, #{item.contractId}, #{item.fileCategory}, #{item.archiveEleId}, #{item.fileName}, #{item.filePath}, #{item.legalFileUrl}, #{item.fileType}, #{item.fileSize},
|
||||||
#{item.sortOrder}, #{createBy}, SYSDATE, #{updateBy}, SYSDATE, 'N', #{item.remark}
|
#{item.sortOrder}, #{createBy}, SYSDATE, #{updateBy}, SYSDATE, 'N', #{item.remark}
|
||||||
)
|
)
|
||||||
</foreach>
|
</foreach>
|
||||||
@@ -448,6 +477,34 @@
|
|||||||
SELECT 1 FROM DUAL
|
SELECT 1 FROM DUAL
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
<insert id="batchInsertArchivePaper">
|
||||||
|
INSERT ALL
|
||||||
|
<foreach collection="list" item="item">
|
||||||
|
INTO SEAL_CONTRACT_LAUNCH_AR_PAPER (
|
||||||
|
ID, CONTRACT_ID, ARCHIVES_NAME, ARCHIVES_NUM, ARCHIVES_TIME, SORT_ORDER,
|
||||||
|
CREATE_BY, CREATE_TIME, UPDATE_BY, UPDATE_TIME, IS_DELETED, REMARK
|
||||||
|
) VALUES (
|
||||||
|
#{item.id}, #{item.contractId}, #{item.archivesName}, #{item.archivesNum}, #{item.archivesTime}, #{item.sortOrder},
|
||||||
|
#{createBy}, SYSDATE, #{updateBy}, SYSDATE, 'N', #{item.remark}
|
||||||
|
)
|
||||||
|
</foreach>
|
||||||
|
SELECT 1 FROM DUAL
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<insert id="batchInsertArchiveEle">
|
||||||
|
INSERT ALL
|
||||||
|
<foreach collection="list" item="item">
|
||||||
|
INTO SEAL_CONTRACT_LAUNCH_AR_ELE (
|
||||||
|
ID, CONTRACT_ID, ARCHIVES_NAME, SORT_ORDER,
|
||||||
|
CREATE_BY, CREATE_TIME, UPDATE_BY, UPDATE_TIME, IS_DELETED, REMARK
|
||||||
|
) VALUES (
|
||||||
|
#{item.id}, #{item.contractId}, #{item.archivesName}, #{item.sortOrder},
|
||||||
|
#{createBy}, SYSDATE, #{updateBy}, SYSDATE, 'N', #{item.remark}
|
||||||
|
)
|
||||||
|
</foreach>
|
||||||
|
SELECT 1 FROM DUAL
|
||||||
|
</insert>
|
||||||
|
|
||||||
<insert id="insertLog" parameterType="com.nbport.zgwl.contractlaunch.dto.ContractLaunchLogDto">
|
<insert id="insertLog" parameterType="com.nbport.zgwl.contractlaunch.dto.ContractLaunchLogDto">
|
||||||
insert into SEAL_CONTRACT_LAUNCH_LOG (
|
insert into SEAL_CONTRACT_LAUNCH_LOG (
|
||||||
ID, CONTRACT_ID, ACTION_TYPE, ACTION_NAME, ACTION_STATUS, OPERATOR_NAME, OPERATOR_PHONE,
|
ID, CONTRACT_ID, ACTION_TYPE, ACTION_NAME, ACTION_STATUS, OPERATOR_NAME, OPERATOR_PHONE,
|
||||||
@@ -504,6 +561,24 @@
|
|||||||
and IS_DELETED = 'N'
|
and IS_DELETED = 'N'
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
<update id="deleteArchivePaperByContractId">
|
||||||
|
update SEAL_CONTRACT_LAUNCH_AR_PAPER
|
||||||
|
set IS_DELETED = 'Y',
|
||||||
|
UPDATE_BY = #{updateBy},
|
||||||
|
UPDATE_TIME = SYSDATE
|
||||||
|
where CONTRACT_ID = #{contractId}
|
||||||
|
and IS_DELETED = 'N'
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<update id="deleteArchiveEleByContractId">
|
||||||
|
update SEAL_CONTRACT_LAUNCH_AR_ELE
|
||||||
|
set IS_DELETED = 'Y',
|
||||||
|
UPDATE_BY = #{updateBy},
|
||||||
|
UPDATE_TIME = SYSDATE
|
||||||
|
where CONTRACT_ID = #{contractId}
|
||||||
|
and IS_DELETED = 'N'
|
||||||
|
</update>
|
||||||
|
|
||||||
<select id="selectPartyByContractIds" resultMap="PartyResult">
|
<select id="selectPartyByContractIds" resultMap="PartyResult">
|
||||||
select ID, CONTRACT_ID, ROLE_CODE, ROLE_NAME, SORT_ORDER, PARTNER_ID, OPPOSITE_ID,
|
select ID, CONTRACT_ID, ROLE_CODE, ROLE_NAME, SORT_ORDER, PARTNER_ID, OPPOSITE_ID,
|
||||||
COMPANY_NAME, COMPANY_TYPE, OPPOSITE_CHARACTER, CONTACT_NAME, CONTACT_PHONE,
|
COMPANY_NAME, COMPANY_TYPE, OPPOSITE_CHARACTER, CONTACT_NAME, CONTACT_PHONE,
|
||||||
@@ -520,7 +595,7 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectFileByContractIds" resultMap="FileResult">
|
<select id="selectFileByContractIds" resultMap="FileResult">
|
||||||
select ID, CONTRACT_ID, FILE_CATEGORY, FILE_NAME, FILE_PATH, LEGAL_FILE_URL, FILE_TYPE, FILE_SIZE, SORT_ORDER, REMARK
|
select ID, CONTRACT_ID, FILE_CATEGORY, ARCHIVE_ELE_ID, FILE_NAME, FILE_PATH, LEGAL_FILE_URL, FILE_TYPE, FILE_SIZE, SORT_ORDER, REMARK
|
||||||
from SEAL_CONTRACT_LAUNCH_FILE
|
from SEAL_CONTRACT_LAUNCH_FILE
|
||||||
where IS_DELETED = 'N'
|
where IS_DELETED = 'N'
|
||||||
and CONTRACT_ID in
|
and CONTRACT_ID in
|
||||||
@@ -542,6 +617,28 @@
|
|||||||
order by CONTRACT_ID asc, PLAN_TIME asc, ID asc
|
order by CONTRACT_ID asc, PLAN_TIME asc, ID asc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectArchivePaperByContractIds" resultMap="ArchivePaperResult">
|
||||||
|
select ID, CONTRACT_ID, ARCHIVES_NAME, ARCHIVES_NUM, ARCHIVES_TIME, SORT_ORDER, REMARK
|
||||||
|
from SEAL_CONTRACT_LAUNCH_AR_PAPER
|
||||||
|
where IS_DELETED = 'N'
|
||||||
|
and CONTRACT_ID in
|
||||||
|
<foreach collection="contractIds" item="contractId" open="(" separator="," close=")">
|
||||||
|
#{contractId}
|
||||||
|
</foreach>
|
||||||
|
order by CONTRACT_ID asc, SORT_ORDER asc, ID asc
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectArchiveEleByContractIds" resultMap="ArchiveEleResult">
|
||||||
|
select ID, CONTRACT_ID, ARCHIVES_NAME, SORT_ORDER, REMARK
|
||||||
|
from SEAL_CONTRACT_LAUNCH_AR_ELE
|
||||||
|
where IS_DELETED = 'N'
|
||||||
|
and CONTRACT_ID in
|
||||||
|
<foreach collection="contractIds" item="contractId" open="(" separator="," close=")">
|
||||||
|
#{contractId}
|
||||||
|
</foreach>
|
||||||
|
order by CONTRACT_ID asc, SORT_ORDER asc, ID asc
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="selectLogByContractIds" resultMap="LogResult">
|
<select id="selectLogByContractIds" resultMap="LogResult">
|
||||||
select ID, CONTRACT_ID, ACTION_TYPE, ACTION_NAME, ACTION_STATUS, OPERATOR_NAME, OPERATOR_PHONE,
|
select ID, CONTRACT_ID, ACTION_TYPE, ACTION_NAME, ACTION_STATUS, OPERATOR_NAME, OPERATOR_PHONE,
|
||||||
ACTION_TIME, ACTION_CONTENT, CALLBACK_PAYLOAD, REMARK
|
ACTION_TIME, ACTION_CONTENT, CALLBACK_PAYLOAD, REMARK
|
||||||
|
|||||||
@@ -0,0 +1,226 @@
|
|||||||
|
DECLARE
|
||||||
|
v_count NUMBER;
|
||||||
|
BEGIN
|
||||||
|
SELECT COUNT(1)
|
||||||
|
INTO v_count
|
||||||
|
FROM USER_TAB_COLUMNS
|
||||||
|
WHERE TABLE_NAME = 'SEAL_CONTRACT_LAUNCH_MAIN'
|
||||||
|
AND COLUMN_NAME = 'ARCHIVE_RECEIVE_DEPT';
|
||||||
|
IF v_count = 0 THEN
|
||||||
|
EXECUTE IMMEDIATE 'ALTER TABLE SEAL_CONTRACT_LAUNCH_MAIN ADD ARCHIVE_RECEIVE_DEPT VARCHAR2(100 CHAR)';
|
||||||
|
END IF;
|
||||||
|
END;
|
||||||
|
/
|
||||||
|
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.ARCHIVE_RECEIVE_DEPT IS '合同归档接收部门编码';
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
v_count NUMBER;
|
||||||
|
BEGIN
|
||||||
|
SELECT COUNT(1)
|
||||||
|
INTO v_count
|
||||||
|
FROM USER_TAB_COLUMNS
|
||||||
|
WHERE TABLE_NAME = 'SEAL_CONTRACT_LAUNCH_MAIN'
|
||||||
|
AND COLUMN_NAME = 'ARCHIVE_TRANSFEROR';
|
||||||
|
IF v_count = 0 THEN
|
||||||
|
EXECUTE IMMEDIATE 'ALTER TABLE SEAL_CONTRACT_LAUNCH_MAIN ADD ARCHIVE_TRANSFEROR VARCHAR2(64 CHAR)';
|
||||||
|
END IF;
|
||||||
|
END;
|
||||||
|
/
|
||||||
|
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.ARCHIVE_TRANSFEROR IS '移交人账号';
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
v_count NUMBER;
|
||||||
|
BEGIN
|
||||||
|
SELECT COUNT(1)
|
||||||
|
INTO v_count
|
||||||
|
FROM USER_TAB_COLUMNS
|
||||||
|
WHERE TABLE_NAME = 'SEAL_CONTRACT_LAUNCH_FILE'
|
||||||
|
AND COLUMN_NAME = 'ARCHIVE_ELE_ID';
|
||||||
|
IF v_count = 0 THEN
|
||||||
|
EXECUTE IMMEDIATE 'ALTER TABLE SEAL_CONTRACT_LAUNCH_FILE ADD ARCHIVE_ELE_ID NUMBER(19)';
|
||||||
|
END IF;
|
||||||
|
END;
|
||||||
|
/
|
||||||
|
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_FILE.ARCHIVE_ELE_ID IS '关联合同电子档案材料ID';
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
v_count NUMBER;
|
||||||
|
BEGIN
|
||||||
|
SELECT COUNT(1)
|
||||||
|
INTO v_count
|
||||||
|
FROM USER_TABLES
|
||||||
|
WHERE TABLE_NAME = 'SEAL_CONTRACT_LAUNCH_AR_PAPER';
|
||||||
|
IF v_count = 0 THEN
|
||||||
|
EXECUTE IMMEDIATE '
|
||||||
|
CREATE TABLE SEAL_CONTRACT_LAUNCH_AR_PAPER (
|
||||||
|
ID NUMBER(19) NOT NULL,
|
||||||
|
CONTRACT_ID NUMBER(19) NOT NULL,
|
||||||
|
ARCHIVES_NAME VARCHAR2(255 CHAR) NOT NULL,
|
||||||
|
ARCHIVES_NUM VARCHAR2(50 CHAR) NOT NULL,
|
||||||
|
ARCHIVES_TIME DATE NOT NULL,
|
||||||
|
SORT_ORDER NUMBER(10) DEFAULT 1,
|
||||||
|
CREATE_BY VARCHAR2(64 CHAR),
|
||||||
|
CREATE_TIME DATE DEFAULT SYSDATE,
|
||||||
|
UPDATE_BY VARCHAR2(64 CHAR),
|
||||||
|
UPDATE_TIME DATE DEFAULT SYSDATE,
|
||||||
|
IS_DELETED VARCHAR2(2 CHAR) DEFAULT ''N'',
|
||||||
|
REMARK VARCHAR2(1000 CHAR),
|
||||||
|
CONSTRAINT PK_SEAL_CONTRACT_LAUNCH_AR_PAPER PRIMARY KEY (ID)
|
||||||
|
)';
|
||||||
|
END IF;
|
||||||
|
END;
|
||||||
|
/
|
||||||
|
|
||||||
|
COMMENT ON TABLE SEAL_CONTRACT_LAUNCH_AR_PAPER IS '合同归档纸质档案材料表';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_PAPER.ID IS '主键ID';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_PAPER.CONTRACT_ID IS '合同主表ID';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_PAPER.ARCHIVES_NAME IS '档案名称';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_PAPER.ARCHIVES_NUM IS '份数';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_PAPER.ARCHIVES_TIME IS '归档时间';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_PAPER.SORT_ORDER IS '排序号';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_PAPER.IS_DELETED IS '逻辑删除标记';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_PAPER.REMARK IS '备注';
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
v_count NUMBER;
|
||||||
|
BEGIN
|
||||||
|
SELECT COUNT(1)
|
||||||
|
INTO v_count
|
||||||
|
FROM USER_TABLES
|
||||||
|
WHERE TABLE_NAME = 'SEAL_CONTRACT_LAUNCH_AR_ELE';
|
||||||
|
IF v_count = 0 THEN
|
||||||
|
EXECUTE IMMEDIATE '
|
||||||
|
CREATE TABLE SEAL_CONTRACT_LAUNCH_AR_ELE (
|
||||||
|
ID NUMBER(19) NOT NULL,
|
||||||
|
CONTRACT_ID NUMBER(19) NOT NULL,
|
||||||
|
ARCHIVES_NAME VARCHAR2(255 CHAR) NOT NULL,
|
||||||
|
SORT_ORDER NUMBER(10) DEFAULT 1,
|
||||||
|
CREATE_BY VARCHAR2(64 CHAR),
|
||||||
|
CREATE_TIME DATE DEFAULT SYSDATE,
|
||||||
|
UPDATE_BY VARCHAR2(64 CHAR),
|
||||||
|
UPDATE_TIME DATE DEFAULT SYSDATE,
|
||||||
|
IS_DELETED VARCHAR2(2 CHAR) DEFAULT ''N'',
|
||||||
|
REMARK VARCHAR2(1000 CHAR),
|
||||||
|
CONSTRAINT PK_SEAL_CONTRACT_LAUNCH_AR_ELE PRIMARY KEY (ID)
|
||||||
|
)';
|
||||||
|
END IF;
|
||||||
|
END;
|
||||||
|
/
|
||||||
|
|
||||||
|
COMMENT ON TABLE SEAL_CONTRACT_LAUNCH_AR_ELE IS '合同归档电子档案材料表';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_ELE.ID IS '主键ID';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_ELE.CONTRACT_ID IS '合同主表ID';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_ELE.ARCHIVES_NAME IS '档案名称';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_ELE.SORT_ORDER IS '排序号';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_ELE.IS_DELETED IS '逻辑删除标记';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_ELE.REMARK IS '备注';
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
v_count NUMBER;
|
||||||
|
BEGIN
|
||||||
|
SELECT COUNT(1)
|
||||||
|
INTO v_count
|
||||||
|
FROM USER_SEQUENCES
|
||||||
|
WHERE SEQUENCE_NAME = 'SEQ_SEAL_CONTRACT_LAUNCH_AR_PAPER';
|
||||||
|
IF v_count = 0 THEN
|
||||||
|
EXECUTE IMMEDIATE 'CREATE SEQUENCE SEQ_SEAL_CONTRACT_LAUNCH_AR_PAPER START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE';
|
||||||
|
END IF;
|
||||||
|
END;
|
||||||
|
/
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
v_count NUMBER;
|
||||||
|
BEGIN
|
||||||
|
SELECT COUNT(1)
|
||||||
|
INTO v_count
|
||||||
|
FROM USER_SEQUENCES
|
||||||
|
WHERE SEQUENCE_NAME = 'SEQ_SEAL_CONTRACT_LAUNCH_AR_ELE';
|
||||||
|
IF v_count = 0 THEN
|
||||||
|
EXECUTE IMMEDIATE 'CREATE SEQUENCE SEQ_SEAL_CONTRACT_LAUNCH_AR_ELE START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE';
|
||||||
|
END IF;
|
||||||
|
END;
|
||||||
|
/
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
v_count NUMBER;
|
||||||
|
BEGIN
|
||||||
|
SELECT COUNT(1)
|
||||||
|
INTO v_count
|
||||||
|
FROM USER_INDEXES
|
||||||
|
WHERE INDEX_NAME = 'IDX_CONTRACT_LAUNCH_FILE_AR_ELE';
|
||||||
|
IF v_count = 0 THEN
|
||||||
|
EXECUTE IMMEDIATE 'CREATE INDEX IDX_CONTRACT_LAUNCH_FILE_AR_ELE ON SEAL_CONTRACT_LAUNCH_FILE (ARCHIVE_ELE_ID)';
|
||||||
|
END IF;
|
||||||
|
END;
|
||||||
|
/
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
v_count NUMBER;
|
||||||
|
BEGIN
|
||||||
|
SELECT COUNT(1)
|
||||||
|
INTO v_count
|
||||||
|
FROM USER_INDEXES
|
||||||
|
WHERE INDEX_NAME = 'IDX_CONTRACT_LAUNCH_AR_PAPER_CT';
|
||||||
|
IF v_count = 0 THEN
|
||||||
|
EXECUTE IMMEDIATE 'CREATE INDEX IDX_CONTRACT_LAUNCH_AR_PAPER_CT ON SEAL_CONTRACT_LAUNCH_AR_PAPER (CONTRACT_ID)';
|
||||||
|
END IF;
|
||||||
|
END;
|
||||||
|
/
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
v_count NUMBER;
|
||||||
|
BEGIN
|
||||||
|
SELECT COUNT(1)
|
||||||
|
INTO v_count
|
||||||
|
FROM USER_INDEXES
|
||||||
|
WHERE INDEX_NAME = 'IDX_CONTRACT_LAUNCH_AR_ELE_CT';
|
||||||
|
IF v_count = 0 THEN
|
||||||
|
EXECUTE IMMEDIATE 'CREATE INDEX IDX_CONTRACT_LAUNCH_AR_ELE_CT ON SEAL_CONTRACT_LAUNCH_AR_ELE (CONTRACT_ID)';
|
||||||
|
END IF;
|
||||||
|
END;
|
||||||
|
/
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
EXECUTE IMMEDIATE '
|
||||||
|
UPDATE SEAL_CONTRACT_LAUNCH_MAIN
|
||||||
|
SET ARCHIVE_RECEIVE_DEPT = ARCHIVE_KEEPER_UNIT_CODE
|
||||||
|
WHERE ARCHIVE_RECEIVE_DEPT IS NULL
|
||||||
|
AND ARCHIVE_KEEPER_UNIT_CODE IS NOT NULL';
|
||||||
|
|
||||||
|
EXECUTE IMMEDIATE '
|
||||||
|
UPDATE SEAL_CONTRACT_LAUNCH_MAIN
|
||||||
|
SET ARCHIVE_TRANSFEROR = ARCHIVE_KEEPER
|
||||||
|
WHERE ARCHIVE_TRANSFEROR IS NULL
|
||||||
|
AND ARCHIVE_KEEPER IS NOT NULL';
|
||||||
|
END;
|
||||||
|
/
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
CURSOR c_files IS
|
||||||
|
SELECT ID, CONTRACT_ID, FILE_NAME
|
||||||
|
FROM SEAL_CONTRACT_LAUNCH_FILE
|
||||||
|
WHERE FILE_CATEGORY = 'archive'
|
||||||
|
AND IS_DELETED = 'N'
|
||||||
|
AND ARCHIVE_ELE_ID IS NULL;
|
||||||
|
v_ele_id NUMBER;
|
||||||
|
BEGIN
|
||||||
|
FOR rec IN c_files LOOP
|
||||||
|
SELECT SEQ_SEAL_CONTRACT_LAUNCH_AR_ELE.NEXTVAL INTO v_ele_id FROM DUAL;
|
||||||
|
INSERT INTO SEAL_CONTRACT_LAUNCH_AR_ELE (
|
||||||
|
ID, CONTRACT_ID, ARCHIVES_NAME, SORT_ORDER,
|
||||||
|
CREATE_BY, CREATE_TIME, UPDATE_BY, UPDATE_TIME, IS_DELETED, REMARK
|
||||||
|
) VALUES (
|
||||||
|
v_ele_id, rec.CONTRACT_ID, NVL(rec.FILE_NAME, '历史归档附件'), 1,
|
||||||
|
'patch', SYSDATE, 'patch', SYSDATE, 'N', '历史归档附件迁移'
|
||||||
|
);
|
||||||
|
|
||||||
|
UPDATE SEAL_CONTRACT_LAUNCH_FILE
|
||||||
|
SET ARCHIVE_ELE_ID = v_ele_id
|
||||||
|
WHERE ID = rec.ID;
|
||||||
|
END LOOP;
|
||||||
|
COMMIT;
|
||||||
|
END;
|
||||||
|
/
|
||||||
@@ -164,6 +164,8 @@ CREATE TABLE SEAL_CONTRACT_LAUNCH_MAIN (
|
|||||||
SEAL_DATE DATE,
|
SEAL_DATE DATE,
|
||||||
ACTIVE_DATE DATE,
|
ACTIVE_DATE DATE,
|
||||||
ARCHIVE_DATE DATE,
|
ARCHIVE_DATE DATE,
|
||||||
|
ARCHIVE_RECEIVE_DEPT VARCHAR2(100 CHAR),
|
||||||
|
ARCHIVE_TRANSFEROR VARCHAR2(64 CHAR),
|
||||||
ARCHIVE_KEEPER VARCHAR2(64 CHAR),
|
ARCHIVE_KEEPER VARCHAR2(64 CHAR),
|
||||||
ARCHIVE_KEEPER_UNIT VARCHAR2(200 CHAR),
|
ARCHIVE_KEEPER_UNIT VARCHAR2(200 CHAR),
|
||||||
ARCHIVE_KEEPER_UNIT_CODE VARCHAR2(100 CHAR),
|
ARCHIVE_KEEPER_UNIT_CODE VARCHAR2(100 CHAR),
|
||||||
@@ -222,6 +224,7 @@ CREATE TABLE SEAL_CONTRACT_LAUNCH_FILE (
|
|||||||
ID NUMBER(19) NOT NULL,
|
ID NUMBER(19) NOT NULL,
|
||||||
CONTRACT_ID NUMBER(19) NOT NULL,
|
CONTRACT_ID NUMBER(19) NOT NULL,
|
||||||
FILE_CATEGORY VARCHAR2(30 CHAR) NOT NULL,
|
FILE_CATEGORY VARCHAR2(30 CHAR) NOT NULL,
|
||||||
|
ARCHIVE_ELE_ID NUMBER(19),
|
||||||
FILE_NAME VARCHAR2(255 CHAR) NOT NULL,
|
FILE_NAME VARCHAR2(255 CHAR) NOT NULL,
|
||||||
FILE_PATH VARCHAR2(500 CHAR) NOT NULL,
|
FILE_PATH VARCHAR2(500 CHAR) NOT NULL,
|
||||||
LEGAL_FILE_URL VARCHAR2(1000 CHAR),
|
LEGAL_FILE_URL VARCHAR2(1000 CHAR),
|
||||||
@@ -237,6 +240,36 @@ CREATE TABLE SEAL_CONTRACT_LAUNCH_FILE (
|
|||||||
CONSTRAINT PK_SEAL_CONTRACT_LAUNCH_FILE PRIMARY KEY (ID)
|
CONSTRAINT PK_SEAL_CONTRACT_LAUNCH_FILE PRIMARY KEY (ID)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
CREATE TABLE SEAL_CONTRACT_LAUNCH_AR_PAPER (
|
||||||
|
ID NUMBER(19) NOT NULL,
|
||||||
|
CONTRACT_ID NUMBER(19) NOT NULL,
|
||||||
|
ARCHIVES_NAME VARCHAR2(255 CHAR) NOT NULL,
|
||||||
|
ARCHIVES_NUM VARCHAR2(50 CHAR) NOT NULL,
|
||||||
|
ARCHIVES_TIME DATE NOT NULL,
|
||||||
|
SORT_ORDER NUMBER(10) DEFAULT 1,
|
||||||
|
CREATE_BY VARCHAR2(64 CHAR),
|
||||||
|
CREATE_TIME DATE DEFAULT SYSDATE,
|
||||||
|
UPDATE_BY VARCHAR2(64 CHAR),
|
||||||
|
UPDATE_TIME DATE DEFAULT SYSDATE,
|
||||||
|
IS_DELETED VARCHAR2(2 CHAR) DEFAULT 'N',
|
||||||
|
REMARK VARCHAR2(1000 CHAR),
|
||||||
|
CONSTRAINT PK_SEAL_CONTRACT_LAUNCH_AR_PAPER PRIMARY KEY (ID)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE SEAL_CONTRACT_LAUNCH_AR_ELE (
|
||||||
|
ID NUMBER(19) NOT NULL,
|
||||||
|
CONTRACT_ID NUMBER(19) NOT NULL,
|
||||||
|
ARCHIVES_NAME VARCHAR2(255 CHAR) NOT NULL,
|
||||||
|
SORT_ORDER NUMBER(10) DEFAULT 1,
|
||||||
|
CREATE_BY VARCHAR2(64 CHAR),
|
||||||
|
CREATE_TIME DATE DEFAULT SYSDATE,
|
||||||
|
UPDATE_BY VARCHAR2(64 CHAR),
|
||||||
|
UPDATE_TIME DATE DEFAULT SYSDATE,
|
||||||
|
IS_DELETED VARCHAR2(2 CHAR) DEFAULT 'N',
|
||||||
|
REMARK VARCHAR2(1000 CHAR),
|
||||||
|
CONSTRAINT PK_SEAL_CONTRACT_LAUNCH_AR_ELE PRIMARY KEY (ID)
|
||||||
|
);
|
||||||
|
|
||||||
CREATE TABLE SEAL_CONTRACT_LAUNCH_PLAN (
|
CREATE TABLE SEAL_CONTRACT_LAUNCH_PLAN (
|
||||||
ID NUMBER(19) NOT NULL,
|
ID NUMBER(19) NOT NULL,
|
||||||
CONTRACT_ID NUMBER(19) NOT NULL,
|
CONTRACT_ID NUMBER(19) NOT NULL,
|
||||||
@@ -352,6 +385,8 @@ COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.SIGN_DATE IS '签署日期';
|
|||||||
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.SEAL_DATE IS '用印时间';
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.SEAL_DATE IS '用印时间';
|
||||||
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.ACTIVE_DATE IS '合同生效日期';
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.ACTIVE_DATE IS '合同生效日期';
|
||||||
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.ARCHIVE_DATE IS '归档时间';
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.ARCHIVE_DATE IS '归档时间';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.ARCHIVE_RECEIVE_DEPT IS '合同归档接收部门编码';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.ARCHIVE_TRANSFEROR IS '移交人账号';
|
||||||
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.ARCHIVE_KEEPER IS '档案保管人';
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.ARCHIVE_KEEPER IS '档案保管人';
|
||||||
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.ARCHIVE_KEEPER_UNIT IS '档案保管单位';
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.ARCHIVE_KEEPER_UNIT IS '档案保管单位';
|
||||||
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.ARCHIVE_KEEPER_UNIT_CODE IS '档案保管单位编码';
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.ARCHIVE_KEEPER_UNIT_CODE IS '档案保管单位编码';
|
||||||
@@ -405,6 +440,7 @@ COMMENT ON TABLE SEAL_CONTRACT_LAUNCH_FILE IS '合同附件表';
|
|||||||
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_FILE.ID IS '主键ID';
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_FILE.ID IS '主键ID';
|
||||||
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_FILE.CONTRACT_ID IS '合同主表ID';
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_FILE.CONTRACT_ID IS '合同主表ID';
|
||||||
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_FILE.FILE_CATEGORY IS '文件分类:body/other/gist/signed/archive';
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_FILE.FILE_CATEGORY IS '文件分类:body/other/gist/signed/archive';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_FILE.ARCHIVE_ELE_ID IS '关联合同电子档案材料ID';
|
||||||
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_FILE.FILE_NAME IS '文件名称';
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_FILE.FILE_NAME IS '文件名称';
|
||||||
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_FILE.FILE_PATH IS '文件路径';
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_FILE.FILE_PATH IS '文件路径';
|
||||||
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_FILE.LEGAL_FILE_URL IS '法务系统附件路径缓存';
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_FILE.LEGAL_FILE_URL IS '法务系统附件路径缓存';
|
||||||
@@ -418,6 +454,32 @@ COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_FILE.UPDATE_TIME IS '更新时间';
|
|||||||
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_FILE.IS_DELETED IS '逻辑删除标记';
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_FILE.IS_DELETED IS '逻辑删除标记';
|
||||||
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_FILE.REMARK IS '备注';
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_FILE.REMARK IS '备注';
|
||||||
|
|
||||||
|
COMMENT ON TABLE SEAL_CONTRACT_LAUNCH_AR_PAPER IS '合同归档纸质档案材料表';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_PAPER.ID IS '主键ID';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_PAPER.CONTRACT_ID IS '合同主表ID';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_PAPER.ARCHIVES_NAME IS '档案名称';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_PAPER.ARCHIVES_NUM IS '份数';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_PAPER.ARCHIVES_TIME IS '归档时间';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_PAPER.SORT_ORDER IS '排序号';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_PAPER.CREATE_BY IS '创建人';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_PAPER.CREATE_TIME IS '创建时间';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_PAPER.UPDATE_BY IS '更新人';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_PAPER.UPDATE_TIME IS '更新时间';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_PAPER.IS_DELETED IS '逻辑删除标记';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_PAPER.REMARK IS '备注';
|
||||||
|
|
||||||
|
COMMENT ON TABLE SEAL_CONTRACT_LAUNCH_AR_ELE IS '合同归档电子档案材料表';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_ELE.ID IS '主键ID';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_ELE.CONTRACT_ID IS '合同主表ID';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_ELE.ARCHIVES_NAME IS '档案名称';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_ELE.SORT_ORDER IS '排序号';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_ELE.CREATE_BY IS '创建人';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_ELE.CREATE_TIME IS '创建时间';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_ELE.UPDATE_BY IS '更新人';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_ELE.UPDATE_TIME IS '更新时间';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_ELE.IS_DELETED IS '逻辑删除标记';
|
||||||
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_AR_ELE.REMARK IS '备注';
|
||||||
|
|
||||||
COMMENT ON TABLE SEAL_CONTRACT_LAUNCH_PLAN IS '合同履行计划表';
|
COMMENT ON TABLE SEAL_CONTRACT_LAUNCH_PLAN IS '合同履行计划表';
|
||||||
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_PLAN.ID IS '主键ID';
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_PLAN.ID IS '主键ID';
|
||||||
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_PLAN.CONTRACT_ID IS '合同主表ID';
|
COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_PLAN.CONTRACT_ID IS '合同主表ID';
|
||||||
@@ -456,11 +518,16 @@ CREATE INDEX IDX_CONTRACT_LAUNCH_NAME ON SEAL_CONTRACT_LAUNCH_MAIN (CONTRACT_NAM
|
|||||||
CREATE INDEX IDX_CONTRACT_LAUNCH_CREATE_TIME ON SEAL_CONTRACT_LAUNCH_MAIN (CREATE_TIME);
|
CREATE INDEX IDX_CONTRACT_LAUNCH_CREATE_TIME ON SEAL_CONTRACT_LAUNCH_MAIN (CREATE_TIME);
|
||||||
CREATE INDEX IDX_CONTRACT_LAUNCH_PARTY_CONTRACT ON SEAL_CONTRACT_LAUNCH_PARTY (CONTRACT_ID);
|
CREATE INDEX IDX_CONTRACT_LAUNCH_PARTY_CONTRACT ON SEAL_CONTRACT_LAUNCH_PARTY (CONTRACT_ID);
|
||||||
CREATE INDEX IDX_CONTRACT_LAUNCH_FILE_CONTRACT ON SEAL_CONTRACT_LAUNCH_FILE (CONTRACT_ID);
|
CREATE INDEX IDX_CONTRACT_LAUNCH_FILE_CONTRACT ON SEAL_CONTRACT_LAUNCH_FILE (CONTRACT_ID);
|
||||||
|
CREATE INDEX IDX_CONTRACT_LAUNCH_FILE_AR_ELE ON SEAL_CONTRACT_LAUNCH_FILE (ARCHIVE_ELE_ID);
|
||||||
CREATE INDEX IDX_CONTRACT_LAUNCH_PLAN_CONTRACT ON SEAL_CONTRACT_LAUNCH_PLAN (CONTRACT_ID);
|
CREATE INDEX IDX_CONTRACT_LAUNCH_PLAN_CONTRACT ON SEAL_CONTRACT_LAUNCH_PLAN (CONTRACT_ID);
|
||||||
CREATE INDEX IDX_CONTRACT_LAUNCH_LOG_CONTRACT ON SEAL_CONTRACT_LAUNCH_LOG (CONTRACT_ID);
|
CREATE INDEX IDX_CONTRACT_LAUNCH_LOG_CONTRACT ON SEAL_CONTRACT_LAUNCH_LOG (CONTRACT_ID);
|
||||||
|
CREATE INDEX IDX_CONTRACT_LAUNCH_AR_PAPER_CT ON SEAL_CONTRACT_LAUNCH_AR_PAPER (CONTRACT_ID);
|
||||||
|
CREATE INDEX IDX_CONTRACT_LAUNCH_AR_ELE_CT ON SEAL_CONTRACT_LAUNCH_AR_ELE (CONTRACT_ID);
|
||||||
|
|
||||||
CREATE SEQUENCE SEQ_SEAL_CONTRACT_LAUNCH_MAIN START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
|
CREATE SEQUENCE SEQ_SEAL_CONTRACT_LAUNCH_MAIN START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
|
||||||
CREATE SEQUENCE SEQ_SEAL_CONTRACT_LAUNCH_PARTY START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
|
CREATE SEQUENCE SEQ_SEAL_CONTRACT_LAUNCH_PARTY START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
|
||||||
CREATE SEQUENCE SEQ_SEAL_CONTRACT_LAUNCH_FILE START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
|
CREATE SEQUENCE SEQ_SEAL_CONTRACT_LAUNCH_FILE START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
|
||||||
|
CREATE SEQUENCE SEQ_SEAL_CONTRACT_LAUNCH_AR_PAPER START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
|
||||||
|
CREATE SEQUENCE SEQ_SEAL_CONTRACT_LAUNCH_AR_ELE START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
|
||||||
CREATE SEQUENCE SEQ_SEAL_CONTRACT_LAUNCH_PLAN START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
|
CREATE SEQUENCE SEQ_SEAL_CONTRACT_LAUNCH_PLAN START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
|
||||||
CREATE SEQUENCE SEQ_SEAL_CONTRACT_LAUNCH_LOG START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
|
CREATE SEQUENCE SEQ_SEAL_CONTRACT_LAUNCH_LOG START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE;
|
||||||
|
|||||||
Reference in New Issue
Block a user