Merge branch 'refs/heads/dev' into test

This commit is contained in:
liss
2025-09-30 10:58:03 +08:00
41 changed files with 960 additions and 683 deletions

View File

@@ -7,7 +7,8 @@ public enum DeleteStatusEnum {
STATUS_DRF(TmplStsEnum.DRAFT.getCode(), new HashSet<>() {{add(TmplStsEnum.DRAFT.getCode());}}), STATUS_DRF(TmplStsEnum.DRAFT.getCode(), new HashSet<>() {{add(TmplStsEnum.DRAFT.getCode());}}),
STATUS_PUB(TmplStsEnum.PUBLISHED.getCode(), new HashSet<>()), STATUS_PUB(TmplStsEnum.PUBLISHED.getCode(), new HashSet<>()),
STATUS_STOP(TmplStsEnum.STOPPED.getCode(), new HashSet<>(){{add(TmplStsEnum.STOPPED.getCode());}}); STATUS_STOP(TmplStsEnum.STOPPED.getCode(), new HashSet<>(){{add(TmplStsEnum.STOPPED.getCode());}}),
STATUS_START(TmplStsEnum.START.getCode(), new HashSet<>());
private final String code; private final String code;

View File

@@ -10,7 +10,8 @@ public enum PublishStatusEnum {
STATUS_DRF(TmplStsEnum.DRAFT.getCode(), new HashSet<>() {{add(TmplStsEnum.DRAFT.getCode());}}), STATUS_DRF(TmplStsEnum.DRAFT.getCode(), new HashSet<>() {{add(TmplStsEnum.DRAFT.getCode());}}),
STATUS_PUB(TmplStsEnum.PUBLISHED.getCode(), new HashSet<>()), STATUS_PUB(TmplStsEnum.PUBLISHED.getCode(), new HashSet<>()),
STATUS_STOP(TmplStsEnum.STOPPED.getCode(), new HashSet<>() ); STATUS_STOP(TmplStsEnum.STOPPED.getCode(), new HashSet<>() ),
STATUS_START(TmplStsEnum.START.getCode(), new HashSet<>() {{add(TmplStsEnum.START.getCode());}});
private final String code; private final String code;

View File

@@ -9,7 +9,8 @@ public enum TmplStsEnum {
// 已发布状态 // 已发布状态
PUBLISHED("PUB", "已发布"), PUBLISHED("PUB", "已发布"),
// 已停用状态 // 已停用状态
STOPPED("STOP", "已停用"); STOPPED("STOP", "已停用"),
START("START", "已启用");
// 获取状态编码 // 获取状态编码
private final String code; private final String code;

View File

@@ -10,10 +10,11 @@ public enum UpdateStatusEnum {
add(TmplStsEnum.STOPPED.getCode()); add(TmplStsEnum.STOPPED.getCode());
}}), }}),
STATUS_PUB(TmplStsEnum.PUBLISHED.getCode(), new HashSet<>()), STATUS_PUB(TmplStsEnum.PUBLISHED.getCode(), new HashSet<>()),
STATUS_STOP(TmplStsEnum.STOPPED.getCode(), new HashSet<>(){{ STATUS_STOP(TmplStsEnum.STOPPED.getCode(), new HashSet<>() {{
add(TmplStsEnum.DRAFT.getCode()); add(TmplStsEnum.DRAFT.getCode());
add(TmplStsEnum.STOPPED.getCode()); add(TmplStsEnum.STOPPED.getCode());
}}); }}),
STATUS_START(TmplStsEnum.START.getCode(), new HashSet<>());
private final String code; private final String code;

View File

@@ -75,4 +75,9 @@ public class TemplateInstanceRespVO {
@ExcelProperty("模版分类名称") @ExcelProperty("模版分类名称")
private String tpName; private String tpName;
@Schema(description = "创建人", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建人")
private String creator;
} }

View File

@@ -224,6 +224,9 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
boolean transitionAllowed = false; boolean transitionAllowed = false;
if (status != null) { if (status != null) {
transitionAllowed = status.isTransitionAllowed(TmplStsEnum.DRAFT.getCode()); transitionAllowed = status.isTransitionAllowed(TmplStsEnum.DRAFT.getCode());
if (!transitionAllowed){
transitionAllowed = status.isTransitionAllowed(TmplStsEnum.START.getCode());
}
} }
if (!transitionAllowed) { if (!transitionAllowed) {
throw exception(STATUS_OPERATION_FAIL); throw exception(STATUS_OPERATION_FAIL);
@@ -253,7 +256,7 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
code = TmplStsEnum.STOPPED.getCode(); code = TmplStsEnum.STOPPED.getCode();
} else if (reqVO.getType().equals("enable")) { } else if (reqVO.getType().equals("enable")) {
// 启用 // 启用
code = TmplStsEnum.PUBLISHED.getCode(); code = TmplStsEnum.START.getCode();
} }
if (code.isEmpty()) { if (code.isEmpty()) {
throw exception(ILLEGAL_OPERATION_TYPE); throw exception(ILLEGAL_OPERATION_TYPE);
@@ -269,8 +272,14 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
public TemplateInstanceRespVO createVersion(String id) { public TemplateInstanceRespVO createVersion(String id) {
validateTemplateInstanceExists(Long.valueOf(id)); validateTemplateInstanceExists(Long.valueOf(id));
TemplateInstanceDO templateInstanceDO = templateInstanceMapper.selectById(id); TemplateInstanceDO templateInstanceDO = templateInstanceMapper.selectById(id);
//如果当前状态不是草稿或者是已启用则不能创建新版本
log.info("当前状态【{}】", templateInstanceDO.getSts());
if (!TmplStsEnum.DRAFT.getCode().equals(templateInstanceDO.getSts()) && !TmplStsEnum.START.getCode().equals(templateInstanceDO.getSts())) {
throw exception(STATUS_OPERATION_FAIL);
}
TemplateInstanceDO newTpInstanceDO = BeanUtils.toBean(templateInstanceDO, TemplateInstanceDO.class); TemplateInstanceDO newTpInstanceDO = BeanUtils.toBean(templateInstanceDO, TemplateInstanceDO.class);
newTpInstanceDO.setId(null); newTpInstanceDO.setId(null);
newTpInstanceDO.setTenantId(templateInstanceDO.getTenantId());
newTpInstanceDO.setVer(incrementVersion(templateInstanceDO.getVer())); newTpInstanceDO.setVer(incrementVersion(templateInstanceDO.getVer()));
newTpInstanceDO.setPublishTime(LocalDateTime.now()); newTpInstanceDO.setPublishTime(LocalDateTime.now());
newTpInstanceDO.setOrigCntt(templateInstanceDO.getCntt()!=null?templateInstanceDO.getCntt():templateInstanceDO.getOrigCntt());//模板实例内容,默认为上一个版本的当前文件内容 newTpInstanceDO.setOrigCntt(templateInstanceDO.getCntt()!=null?templateInstanceDO.getCntt():templateInstanceDO.getOrigCntt());//模板实例内容,默认为上一个版本的当前文件内容

View File

@@ -19,4 +19,5 @@ public interface ErrorCodeConstants {
ErrorCode CONTRACT_ID_NOT_EXISTS = new ErrorCode(1_027_000_004, "合同主键为空"); ErrorCode CONTRACT_ID_NOT_EXISTS = new ErrorCode(1_027_000_004, "合同主键为空");
ErrorCode CONTRACT_STATUS_NOT_UPDATE = new ErrorCode(1_027_000_005, "{}合同不允许修改"); ErrorCode CONTRACT_STATUS_NOT_UPDATE = new ErrorCode(1_027_000_005, "{}合同不允许修改");
ErrorCode CONTRACT_DATA_NOT_EXISTS = new ErrorCode(1_027_000_006, "{}不存在"); ErrorCode CONTRACT_DATA_NOT_EXISTS = new ErrorCode(1_027_000_006, "{}不存在");
ErrorCode CONTRACT_STATUS_NOT_SUBMIT_APPROVAL = new ErrorCode(1_027_000_005, "{}合同不允许提交审核");
} }

View File

@@ -1,5 +1,6 @@
package com.zt.plat.module.contractorder.controller.admin.contract; package com.zt.plat.module.contractorder.controller.admin.contract;
import cn.hutool.json.JSONObject;
import com.zt.plat.framework.business.interceptor.BusinessControllerMarker; import com.zt.plat.framework.business.interceptor.BusinessControllerMarker;
import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.pojo.PageResult;
@@ -43,9 +44,9 @@ public class ContractController implements BusinessControllerMarker {
@PostMapping("/create") @PostMapping("/create")
@Operation(summary = "新增合同") @Operation(summary = "新增合同")
@PreAuthorize("@ss.hasPermission('system:contract:create')") @PreAuthorize("@ss.hasPermission('system:contract:create')")
public CommonResult<Long> create(@Valid @RequestBody ContractSaveReqVO reqVO) { public CommonResult<JSONObject> create(@Valid @RequestBody ContractSaveReqVO reqVO) {
Long id = contractService.createContract(reqVO); Long id = contractService.createContract(reqVO);
return success(id); return success(new JSONObject().putOnce("id", id));
} }
@GetMapping("/get") @GetMapping("/get")
@@ -101,7 +102,6 @@ public class ContractController implements BusinessControllerMarker {
public void archive() { public void archive() {
} }
// TODO
@GetMapping("/submit/approval") @GetMapping("/submit/approval")
@Operation(summary = "合同提交审批") @Operation(summary = "合同提交审批")
@PreAuthorize("@ss.hasPermission('system:contract:approval')") @PreAuthorize("@ss.hasPermission('system:contract:approval')")

View File

@@ -20,6 +20,9 @@ public class ContractPageReqVO extends PageParam {
@Schema(description = "合同编号;与ERP(HTBH)对应,校验唯一") @Schema(description = "合同编号;与ERP(HTBH)对应,校验唯一")
private String contractPaperNumber; private String contractPaperNumber;
@Schema(description = "状态", example = "DRAFT")
private String status;
@Schema(description = "甲方公司名称", example = "王五") @Schema(description = "甲方公司名称", example = "王五")
private String purchaseCompanyName; private String purchaseCompanyName;

Some files were not shown because too many files have changed in this diff Show More