diff --git a/src/main/java/com/nbport/zgwl/contractlaunch/controller/ContractLaunchController.java b/src/main/java/com/nbport/zgwl/contractlaunch/controller/ContractLaunchController.java index c5d0b5e..48ce37c 100644 --- a/src/main/java/com/nbport/zgwl/contractlaunch/controller/ContractLaunchController.java +++ b/src/main/java/com/nbport/zgwl/contractlaunch/controller/ContractLaunchController.java @@ -9,6 +9,8 @@ import com.nbport.zgwl.contractlaunch.dto.ContractLaunchQueryDto; import com.nbport.zgwl.contractlaunch.dto.ContractLaunchSealDto; import com.nbport.zgwl.contractlaunch.service.ContractLaunchService; import com.nbport.zgwl.contractlaunch.utils.ContractLaunchConstants; +import com.nbport.zgwl.entity.SysUserEntity; +import com.nbport.zgwl.utils.AdminSecurityManage; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; @@ -39,6 +41,7 @@ import java.util.Map; public class ContractLaunchController { private final ContractLaunchService contractLaunchService; + private final AdminSecurityManage adminSecurityManage; /** * 分页查询合同列表。 @@ -73,6 +76,19 @@ public class ContractLaunchController { return R.success(contractLaunchService.getDetail(id)); } + /** + * 获取当前登录人的我方组织信息(当前先返回 mock 数据)。 + * + * 用途: + * 1. 发起合同页面只读展示“我方”信息 + * 2. 后续接入真实组织主数据时,前端不需要再改字段来源 + */ + @GetMapping("/self-profile") + public R getSelfProfile() { + SysUserEntity currentUser = adminSecurityManage.getUser(); + return R.success(currentUser == null ? null : currentUser.getSysOrgEntity()); + } + /** * 创建合同草稿。 * diff --git a/src/main/java/com/nbport/zgwl/contractlaunch/dto/ContractLaunchDto.java b/src/main/java/com/nbport/zgwl/contractlaunch/dto/ContractLaunchDto.java index 55a3999..089facd 100644 --- a/src/main/java/com/nbport/zgwl/contractlaunch/dto/ContractLaunchDto.java +++ b/src/main/java/com/nbport/zgwl/contractlaunch/dto/ContractLaunchDto.java @@ -101,12 +101,12 @@ public class ContractLaunchDto implements Serializable { /** 期限说明(无固定期限时必填) */ private String periodExplain; - /** 合同开始日期 */ - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + /** 合同开始日期(前端保存时传 yyyy-MM-dd HH:mm:ss) */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime effectiveStart; - /** 合同结束日期 */ - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + /** 合同结束日期(前端保存时传 yyyy-MM-dd HH:mm:ss) */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime effectiveEnd; /** 付款方式 */ @@ -234,6 +234,13 @@ public class ContractLaunchDto implements Serializable { /** 正文/摘要 */ private String bodySummary; + /** + * 模板字段值 JSON。 + * 例如:{"contractName":"xx","businessRemark":"xx"} + * 这里用字符串存,方便后续新增字段时不用改表结构。 + */ + private String templateFieldValuesJson; + // ==================== 文件信息 ==================== /** 合同正文文件名 */ diff --git a/src/main/java/com/nbport/zgwl/contractlaunch/service/ContractLaunchServiceImpl.java b/src/main/java/com/nbport/zgwl/contractlaunch/service/ContractLaunchServiceImpl.java index c86dc48..7ce6fa3 100644 --- a/src/main/java/com/nbport/zgwl/contractlaunch/service/ContractLaunchServiceImpl.java +++ b/src/main/java/com/nbport/zgwl/contractlaunch/service/ContractLaunchServiceImpl.java @@ -643,6 +643,7 @@ public class ContractLaunchServiceImpl implements ContractLaunchService { contract.setPeriodExplain(trim(contract.getPeriodExplain())); contract.setContractGistRemark(trim(contract.getContractGistRemark())); contract.setBodySummary(trim(contract.getBodySummary())); + contract.setTemplateFieldValuesJson(trim(contract.getTemplateFieldValuesJson())); contract.setSigningSubjectCode(trim(contract.getSigningSubjectCode())); contract.setDateType(trim(contract.getDateType())); contract.setPushUrl(trim(contract.getPushUrl())); diff --git a/src/main/java/com/nbport/zgwl/controller/MinioFileController.java b/src/main/java/com/nbport/zgwl/controller/MinioFileController.java index ad2eb8b..f16e395 100644 --- a/src/main/java/com/nbport/zgwl/controller/MinioFileController.java +++ b/src/main/java/com/nbport/zgwl/controller/MinioFileController.java @@ -38,7 +38,7 @@ public class MinioFileController { MultipartFile file = fileMap.values().iterator().next(); log.info("接收到上传文件请求,fileName={}", file.getOriginalFilename()); String relativePath = localFileService.upload(file); - return R.success(relativePath); + return R.data(relativePath); } @GetMapping("/download") diff --git a/src/main/java/com/nbport/zgwl/entity/SysOrgEntity.java b/src/main/java/com/nbport/zgwl/entity/SysOrgEntity.java index 404c71c..04d6afb 100644 --- a/src/main/java/com/nbport/zgwl/entity/SysOrgEntity.java +++ b/src/main/java/com/nbport/zgwl/entity/SysOrgEntity.java @@ -4,6 +4,8 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; /** * 组织信息 @@ -22,4 +24,31 @@ public class SysOrgEntity implements Serializable { /** 组织名称 */ private String orgName; + + /** 联系电话 */ + private String contactPhone; + + /** 电子邮箱 */ + private String contactEmail; + + /** 通讯地址 */ + private String contactAddress; + + /** 注册地址 */ + private String registeredAddress; + + /** 开户银行 */ + private String bankName; + + /** 银行账号 */ + private String bankAccount; + + /** 法定代表人 */ + private String legalRepresentative; + + /** 统一社会信用代码 */ + private String creditCode; + + /** 备选开票抬头 */ + private List invoiceTitleOptions = new ArrayList<>(); } diff --git a/src/main/java/com/nbport/zgwl/utils/AdminSecurityManage.java b/src/main/java/com/nbport/zgwl/utils/AdminSecurityManage.java index fab800f..7f9b4ce 100644 --- a/src/main/java/com/nbport/zgwl/utils/AdminSecurityManage.java +++ b/src/main/java/com/nbport/zgwl/utils/AdminSecurityManage.java @@ -18,6 +18,15 @@ public class AdminSecurityManage { SysOrgEntity orgEntity = new SysOrgEntity(); orgEntity.setId("ORG001"); orgEntity.setOrgName("浙港物流平台有限公司"); + orgEntity.setContactPhone("13800000000"); + orgEntity.setContactEmail("admin@test.com"); + orgEntity.setContactAddress("宁波市北仑区明州路288号"); + orgEntity.setRegisteredAddress("宁波市北仑区明州路288号"); + orgEntity.setBankName("中国工商银行宁波分行"); + orgEntity.setBankAccount("330201000000000001"); + orgEntity.setLegalRepresentative("张三"); + orgEntity.setCreditCode("91330200MAZGWL0001"); + orgEntity.setInvoiceTitleOptions(java.util.List.of("浙港物流平台有限公司")); SysUserEntity user = new SysUserEntity(); user.setId(1L); diff --git a/src/main/resources/mapper/contractlaunch/ContractLaunchMapper.xml b/src/main/resources/mapper/contractlaunch/ContractLaunchMapper.xml index b2cd5c0..d282264 100644 --- a/src/main/resources/mapper/contractlaunch/ContractLaunchMapper.xml +++ b/src/main/resources/mapper/contractlaunch/ContractLaunchMapper.xml @@ -64,6 +64,7 @@ + @@ -185,19 +186,19 @@ from SEAL_CONTRACT_LAUNCH_MAIN - select SEQ_SEAL_CONTRACT_LAUNCH_MAIN.NEXTVAL from dual - select SEQ_SEAL_CONTRACT_LAUNCH_PARTY.NEXTVAL from dual - select SEQ_SEAL_CONTRACT_LAUNCH_FILE.NEXTVAL from dual - select SEQ_SEAL_CONTRACT_LAUNCH_PLAN.NEXTVAL from dual - select SEQ_SEAL_CONTRACT_LAUNCH_LOG.NEXTVAL from dual @@ -253,6 +254,7 @@ CONTRACT_NATURE, IS_SGAT, IS_NORMAL, IS_TERMINATED, IS_SINGLE_AGREEMENT, BIDDING_NO, OPEN_BIDDING_REMARK, CONTRACT_GIST_REMARK, EW_AMOUNT_TYPE, DJ_AMOUNT, YJ_AMOUNT, YFK_AMOUNT, BZJ_AMOUNT, BODY_SUMMARY, + TEMPLATE_FIELD_VALUES_JSON, 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_OFFLINE_REASON, SIGN_DATE, ACTIVE_DATE, ARCHIVE_DATE, ARCHIVE_KEEPER, ARCHIVE_KEEPER_UNIT, @@ -272,6 +274,7 @@ #{contractNature}, #{isSgat}, #{isNormal}, #{isTerminated}, #{isSingleAgreement}, #{biddingNo}, #{openBiddingRemark}, #{contractGistRemark}, #{ewAmountType}, #{djAmount}, #{yjAmount}, #{yfkAmount}, #{bzjAmount}, #{bodySummary}, + #{templateFieldValuesJson}, #{contractTextFileName}, #{contractTextFilePath}, #{contractTextFileType}, #{contractTextFileSize}, #{signedFileName}, #{signedFilePath}, #{signedFileType}, #{signedFileSize}, #{signedOfflineReason}, #{signDate}, #{activeDate}, #{archiveDate}, #{archiveKeeper}, #{archiveKeeperUnit}, @@ -342,6 +345,7 @@ YFK_AMOUNT = #{yfkAmount}, BZJ_AMOUNT = #{bzjAmount}, BODY_SUMMARY = #{bodySummary}, + TEMPLATE_FIELD_VALUES_JSON = #{templateFieldValuesJson}, CONTRACT_TEXT_FILE_NAME = #{contractTextFileName}, CONTRACT_TEXT_FILE_PATH = #{contractTextFilePath}, CONTRACT_TEXT_FILE_TYPE = #{contractTextFileType}, diff --git a/upload-files/20260601/07d2b4b610984168b693498013643e17.pdf b/upload-files/20260601/07d2b4b610984168b693498013643e17.pdf new file mode 100644 index 0000000..8ed2e70 Binary files /dev/null and b/upload-files/20260601/07d2b4b610984168b693498013643e17.pdf differ diff --git a/upload-files/20260601/0c419c78bf1c4ac2adf7d36f348b1b4f.pdf b/upload-files/20260601/0c419c78bf1c4ac2adf7d36f348b1b4f.pdf new file mode 100644 index 0000000..394ae38 Binary files /dev/null and b/upload-files/20260601/0c419c78bf1c4ac2adf7d36f348b1b4f.pdf differ diff --git a/upload-files/20260601/0f470c708f924d1bbc2a72259dc0b2c3.docx b/upload-files/20260601/0f470c708f924d1bbc2a72259dc0b2c3.docx new file mode 100644 index 0000000..8dbb937 Binary files /dev/null and b/upload-files/20260601/0f470c708f924d1bbc2a72259dc0b2c3.docx differ diff --git a/upload-files/20260601/22baf914c92c4d22895d7d08ba8a6972.docx b/upload-files/20260601/22baf914c92c4d22895d7d08ba8a6972.docx new file mode 100644 index 0000000..cdebd63 Binary files /dev/null and b/upload-files/20260601/22baf914c92c4d22895d7d08ba8a6972.docx differ diff --git a/upload-files/20260601/3a0da930e4544f4ea20b7744d89e8b81.pdf b/upload-files/20260601/3a0da930e4544f4ea20b7744d89e8b81.pdf new file mode 100644 index 0000000..394ae38 Binary files /dev/null and b/upload-files/20260601/3a0da930e4544f4ea20b7744d89e8b81.pdf differ diff --git a/upload-files/20260601/3bb874d2152a4c9d932c08e0a6f61808.pdf b/upload-files/20260601/3bb874d2152a4c9d932c08e0a6f61808.pdf new file mode 100644 index 0000000..8ed2e70 Binary files /dev/null and b/upload-files/20260601/3bb874d2152a4c9d932c08e0a6f61808.pdf differ diff --git a/upload-files/20260601/4928694d08574aa19d31d9312bb77b70.docx b/upload-files/20260601/4928694d08574aa19d31d9312bb77b70.docx new file mode 100644 index 0000000..83976c7 Binary files /dev/null and b/upload-files/20260601/4928694d08574aa19d31d9312bb77b70.docx differ diff --git a/upload-files/20260601/4faf2d31a77e4f61af09af861931ac16.docx b/upload-files/20260601/4faf2d31a77e4f61af09af861931ac16.docx new file mode 100644 index 0000000..e174e49 Binary files /dev/null and b/upload-files/20260601/4faf2d31a77e4f61af09af861931ac16.docx differ diff --git a/upload-files/20260601/544959578eab41c291aae799664481a2.docx b/upload-files/20260601/544959578eab41c291aae799664481a2.docx new file mode 100644 index 0000000..8dbb937 Binary files /dev/null and b/upload-files/20260601/544959578eab41c291aae799664481a2.docx differ diff --git a/upload-files/20260601/5b24f25cc48c4d07bf9c176c6f95d3bf.pdf b/upload-files/20260601/5b24f25cc48c4d07bf9c176c6f95d3bf.pdf new file mode 100644 index 0000000..394ae38 Binary files /dev/null and b/upload-files/20260601/5b24f25cc48c4d07bf9c176c6f95d3bf.pdf differ diff --git a/upload-files/20260601/5cea4683c189476a832cc57402d50de5.pdf b/upload-files/20260601/5cea4683c189476a832cc57402d50de5.pdf new file mode 100644 index 0000000..8ed2e70 Binary files /dev/null and b/upload-files/20260601/5cea4683c189476a832cc57402d50de5.pdf differ diff --git a/upload-files/20260601/5da215b4d0a34230b9adffb1b3634674.docx b/upload-files/20260601/5da215b4d0a34230b9adffb1b3634674.docx new file mode 100644 index 0000000..0e36b1e Binary files /dev/null and b/upload-files/20260601/5da215b4d0a34230b9adffb1b3634674.docx differ diff --git a/upload-files/20260601/5f245ec2aa7e41f39b3a233eb6cef6cc.docx b/upload-files/20260601/5f245ec2aa7e41f39b3a233eb6cef6cc.docx new file mode 100644 index 0000000..dcdf1d8 Binary files /dev/null and b/upload-files/20260601/5f245ec2aa7e41f39b3a233eb6cef6cc.docx differ diff --git a/upload-files/20260601/76c0993946db41a99fc1b6c404b64ebe.pdf b/upload-files/20260601/76c0993946db41a99fc1b6c404b64ebe.pdf new file mode 100644 index 0000000..394ae38 Binary files /dev/null and b/upload-files/20260601/76c0993946db41a99fc1b6c404b64ebe.pdf differ diff --git a/upload-files/20260601/824074d48fee46e89d16519c35f6fc54.docx b/upload-files/20260601/824074d48fee46e89d16519c35f6fc54.docx new file mode 100644 index 0000000..d151616 Binary files /dev/null and b/upload-files/20260601/824074d48fee46e89d16519c35f6fc54.docx differ diff --git a/upload-files/20260601/85d27faedbd448cc869e5efe9bd5fbf8.pdf b/upload-files/20260601/85d27faedbd448cc869e5efe9bd5fbf8.pdf new file mode 100644 index 0000000..8ed2e70 Binary files /dev/null and b/upload-files/20260601/85d27faedbd448cc869e5efe9bd5fbf8.pdf differ diff --git a/upload-files/20260601/8e74d60bee374c80a4f2d18315a1c949.docx b/upload-files/20260601/8e74d60bee374c80a4f2d18315a1c949.docx new file mode 100644 index 0000000..18560fa Binary files /dev/null and b/upload-files/20260601/8e74d60bee374c80a4f2d18315a1c949.docx differ diff --git a/upload-files/20260601/9ea30b20e63346c898618b842823badb.pdf b/upload-files/20260601/9ea30b20e63346c898618b842823badb.pdf new file mode 100644 index 0000000..394ae38 Binary files /dev/null and b/upload-files/20260601/9ea30b20e63346c898618b842823badb.pdf differ diff --git a/upload-files/20260601/9f2780eb6aac4647868b2b34e74866e1.docx b/upload-files/20260601/9f2780eb6aac4647868b2b34e74866e1.docx new file mode 100644 index 0000000..560f0c0 Binary files /dev/null and b/upload-files/20260601/9f2780eb6aac4647868b2b34e74866e1.docx differ diff --git a/upload-files/20260601/c2747327748d44e78a1929ca74757327.docx b/upload-files/20260601/c2747327748d44e78a1929ca74757327.docx new file mode 100644 index 0000000..18560fa Binary files /dev/null and b/upload-files/20260601/c2747327748d44e78a1929ca74757327.docx differ diff --git a/upload-files/20260601/c7dba3affa35474dbf2939da937d99e2.docx b/upload-files/20260601/c7dba3affa35474dbf2939da937d99e2.docx new file mode 100644 index 0000000..8dbb937 Binary files /dev/null and b/upload-files/20260601/c7dba3affa35474dbf2939da937d99e2.docx differ diff --git a/upload-files/20260601/d7bba8b4e4d44fdd957460897376fe0f.docx b/upload-files/20260601/d7bba8b4e4d44fdd957460897376fe0f.docx new file mode 100644 index 0000000..8dbb937 Binary files /dev/null and b/upload-files/20260601/d7bba8b4e4d44fdd957460897376fe0f.docx differ diff --git a/upload-files/20260601/d886e86cef2c45c9853bfc98fe926a3b.docx b/upload-files/20260601/d886e86cef2c45c9853bfc98fe926a3b.docx new file mode 100644 index 0000000..b8e1665 Binary files /dev/null and b/upload-files/20260601/d886e86cef2c45c9853bfc98fe926a3b.docx differ diff --git a/upload-files/20260601/e560ec7c3f004e9a895330e3be65051a.pdf b/upload-files/20260601/e560ec7c3f004e9a895330e3be65051a.pdf new file mode 100644 index 0000000..394ae38 Binary files /dev/null and b/upload-files/20260601/e560ec7c3f004e9a895330e3be65051a.pdf differ diff --git a/upload-files/20260601/e64e1588c7834f608ce11dae8e1f3d62.docx b/upload-files/20260601/e64e1588c7834f608ce11dae8e1f3d62.docx new file mode 100644 index 0000000..e174e49 Binary files /dev/null and b/upload-files/20260601/e64e1588c7834f608ce11dae8e1f3d62.docx differ diff --git a/upload-files/20260601/eb09446e5eea42bea1f16cabdf69e62a.docx b/upload-files/20260601/eb09446e5eea42bea1f16cabdf69e62a.docx new file mode 100644 index 0000000..df4772d Binary files /dev/null and b/upload-files/20260601/eb09446e5eea42bea1f16cabdf69e62a.docx differ diff --git a/upload-files/20260601/eb8ce6da38eb4980a99fb8c2914c8ce9.pdf b/upload-files/20260601/eb8ce6da38eb4980a99fb8c2914c8ce9.pdf new file mode 100644 index 0000000..394ae38 Binary files /dev/null and b/upload-files/20260601/eb8ce6da38eb4980a99fb8c2914c8ce9.pdf differ diff --git a/upload-files/20260601/f475046f674448fb8f5d63e43dde6214.pdf b/upload-files/20260601/f475046f674448fb8f5d63e43dde6214.pdf new file mode 100644 index 0000000..8ed2e70 Binary files /dev/null and b/upload-files/20260601/f475046f674448fb8f5d63e43dde6214.pdf differ diff --git a/upload-files/20260601/f53cdf4a600e46c790040da21d6d8ad3.pdf b/upload-files/20260601/f53cdf4a600e46c790040da21d6d8ad3.pdf new file mode 100644 index 0000000..394ae38 Binary files /dev/null and b/upload-files/20260601/f53cdf4a600e46c790040da21d6d8ad3.pdf differ diff --git a/upload-files/20260601/f56c1a53a0f3448bbb35b5dd5100ac5f.docx b/upload-files/20260601/f56c1a53a0f3448bbb35b5dd5100ac5f.docx new file mode 100644 index 0000000..e174e49 Binary files /dev/null and b/upload-files/20260601/f56c1a53a0f3448bbb35b5dd5100ac5f.docx differ diff --git a/zgwl_contract_launch_oracle.sql b/zgwl_contract_launch_oracle.sql index 0c4885a..c98f43c 100644 --- a/zgwl_contract_launch_oracle.sql +++ b/zgwl_contract_launch_oracle.sql @@ -148,6 +148,7 @@ CREATE TABLE SEAL_CONTRACT_LAUNCH_MAIN ( YFK_AMOUNT NUMBER(20, 2), BZJ_AMOUNT NUMBER(20, 2), BODY_SUMMARY VARCHAR2(2000 CHAR), + TEMPLATE_FIELD_VALUES_JSON CLOB, CONTRACT_TEXT_FILE_NAME VARCHAR2(255 CHAR), CONTRACT_TEXT_FILE_PATH VARCHAR2(500 CHAR), CONTRACT_TEXT_FILE_TYPE VARCHAR2(50 CHAR), @@ -330,6 +331,7 @@ COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.YJ_AMOUNT IS '押金金额'; COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.YFK_AMOUNT IS '预付款金额'; COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.BZJ_AMOUNT IS '保证金金额'; COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.BODY_SUMMARY IS '正文摘要'; +COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.TEMPLATE_FIELD_VALUES_JSON IS '模板字段值JSON'; COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.CONTRACT_TEXT_FILE_NAME IS '合同正文文件名'; COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.CONTRACT_TEXT_FILE_PATH IS '合同正文文件路径'; COMMENT ON COLUMN SEAL_CONTRACT_LAUNCH_MAIN.CONTRACT_TEXT_FILE_TYPE IS '合同正文文件类型';