gaoluyang
9 天以前 685fd776aa5e0afefcd233f3ee2e12fc217fda62
feat: 扩展南通苏珩业务需求相关字段

- 售后工单增加客户诉求反馈、处理结果描述
- 通知公告支持附件绑定、查询与删除
- CRM 发票增加合同金额、预付款/到货款/验收款金额及销售订单、出库单关联
- ERP 采购发票增加入库单关联
- HRM 离职申请增加交接员工和数据交接状态
- 新增 20261027 业务需求 SQL 脚本(字段扩展与付款节点表)

Co-Authored-By: Claude Code <noreply@anthropic.com>
已添加1个文件
已修改15个文件
200 ■■■■■ 文件已修改
sql/mysql/20261027_business_requirements.sql 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-aftersales/src/main/java/cn/iocoder/yudao/module/aftersales/controller/admin/ticket/vo/ticket/AfterSaleTicketRespVO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-aftersales/src/main/java/cn/iocoder/yudao/module/aftersales/controller/admin/ticket/vo/ticket/AfterSaleTicketSaveReqVO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-aftersales/src/main/java/cn/iocoder/yudao/module/aftersales/dal/dataobject/ticket/AfterSaleTicketDO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOANoticeController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/OaNoticeRespVO.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/OaNoticeSaveReqVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/OaNoticeServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/invoice/vo/invoice/CrmInvoiceRespVO.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/invoice/vo/invoice/CrmInvoiceSaveReqVO.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/invoice/CrmInvoiceDO.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/vo/invoice/ErpPurchaseInvoiceSaveReqVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/purchase/ErpPurchaseInvoiceDO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/approval/vo/HrmResignationApplicationRespVO.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/approval/vo/HrmResignationApplicationSaveReqVO.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/dal/dataobject/approval/HrmResignationApplicationDO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sql/mysql/20261027_business_requirements.sql
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,93 @@
-- å—通苏珩线缆业务需求扩展
-- æ‰§è¡Œå‰è¯·å¤‡ä»½æµ‹è¯•库。脚本使用信息_schema判断字段,支持重复执行。
SET @db_name = DATABASE();
-- è´¢åŠ¡å•æ®ä¸Žé‡‡è´­ã€é”€å”®ã€ä»“å‚¨å•æ®å…³è”
SET @sql = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE erp_purchase_invoice ADD COLUMN arrival_notice_id BIGINT NULL COMMENT ''关联入库单'' AFTER purchase_order_id',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = @db_name AND table_name = 'erp_purchase_invoice' AND column_name = 'arrival_notice_id');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SET @sql = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE crm_invoice ADD COLUMN sale_order_id BIGINT NULL COMMENT ''关联销售订单'' AFTER contract_id',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = @db_name AND table_name = 'crm_invoice' AND column_name = 'sale_order_id');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SET @sql = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE crm_invoice ADD COLUMN sale_out_id BIGINT NULL COMMENT ''关联出库单'' AFTER sale_order_id',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = @db_name AND table_name = 'crm_invoice' AND column_name = 'sale_out_id');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SET @sql = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE crm_invoice ADD COLUMN contract_amount DECIMAL(18,2) NULL COMMENT ''合同金额'' AFTER price',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = @db_name AND table_name = 'crm_invoice' AND column_name = 'contract_amount');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SET @sql = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE crm_invoice ADD COLUMN prepayment_amount DECIMAL(18,2) NULL COMMENT ''预付款金额'' AFTER contract_amount',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = @db_name AND table_name = 'crm_invoice' AND column_name = 'prepayment_amount');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SET @sql = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE crm_invoice ADD COLUMN delivery_amount DECIMAL(18,2) NULL COMMENT ''到货款金额'' AFTER prepayment_amount',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = @db_name AND table_name = 'crm_invoice' AND column_name = 'delivery_amount');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SET @sql = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE crm_invoice ADD COLUMN acceptance_amount DECIMAL(18,2) NULL COMMENT ''验收款金额'' AFTER delivery_amount',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = @db_name AND table_name = 'crm_invoice' AND column_name = 'acceptance_amount');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-- æ¯ä¸ªä»˜æ¬¾èŠ‚ç‚¹çš„æ—¶é—´
CREATE TABLE IF NOT EXISTS crm_invoice_payment_node (
  id BIGINT NOT NULL AUTO_INCREMENT,
  invoice_id BIGINT NOT NULL COMMENT '开票申请/发票编号',
  node_type TINYINT NOT NULL COMMENT '1预付款 2到货款 3验收款',
  amount DECIMAL(18,2) NOT NULL DEFAULT 0,
  node_time DATETIME NULL,
  remark VARCHAR(500) DEFAULT '',
  creator VARCHAR(64) DEFAULT '', create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updater VARCHAR(64) DEFAULT '', update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  deleted BIT(1) NOT NULL DEFAULT b'0',
  PRIMARY KEY (id), KEY idx_invoice_node (invoice_id, node_type, deleted)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='销售发票付款节点';
-- å”®åŽåé¦ˆã€å¤„理结果和流程留痕
SET @sql = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE after_sale_ticket ADD COLUMN feedback_description TEXT NULL COMMENT ''客户诉求反馈描述'' AFTER issue_description',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = @db_name AND table_name = 'after_sale_ticket' AND column_name = 'feedback_description');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SET @sql = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE after_sale_ticket ADD COLUMN result_description TEXT NULL COMMENT ''处理结果描述'' AFTER feedback_description',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = @db_name AND table_name = 'after_sale_ticket' AND column_name = 'result_description');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
CREATE TABLE IF NOT EXISTS after_sale_ticket_process (
  id BIGINT NOT NULL AUTO_INCREMENT,
  ticket_id BIGINT NOT NULL,
  process_type VARCHAR(32) NOT NULL COMMENT '受理、处理、审核、关闭等',
  process_status TINYINT NULL,
  process_description TEXT,
  attachment_count INT NOT NULL DEFAULT 0,
  operator_user_id BIGINT NULL,
  process_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  creator VARCHAR(64) DEFAULT '', create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updater VARCHAR(64) DEFAULT '', update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  deleted BIT(1) NOT NULL DEFAULT b'0',
  PRIMARY KEY (id), KEY idx_ticket_process (ticket_id, process_time, deleted)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='售后工单流转记录';
-- ç¦»èŒäº¤æŽ¥ï¼šåŒæ—¶è®°å½•员工、用户和数据交接状态
SET @sql = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE hrm_resignation_application ADD COLUMN handover_employee_id BIGINT NULL COMMENT ''交接员工ID'' AFTER handover_user_id',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = @db_name AND table_name = 'hrm_resignation_application' AND column_name = 'handover_employee_id');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SET @sql = (SELECT IF(COUNT(*) = 0,
  'ALTER TABLE hrm_resignation_application ADD COLUMN handover_data_status TINYINT NOT NULL DEFAULT 0 COMMENT ''用户数据交接状态:0未开始 10进行中 20已完成'' AFTER handover_status',
  'SELECT 1') FROM information_schema.columns WHERE table_schema = @db_name AND table_name = 'hrm_resignation_application' AND column_name = 'handover_data_status');
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-- è®¾å¤‡å°è´¦å·²æœ‰ code å­—段;计量器具已有 Excel å¯¼å…¥è¡¨å•,公告附件使用系统存储附件表绑定。
yudao-module-aftersales/src/main/java/cn/iocoder/yudao/module/aftersales/controller/admin/ticket/vo/ticket/AfterSaleTicketRespVO.java
@@ -54,6 +54,12 @@
    @Schema(description = "问题描述", example = "收到货后发现产品表面有划痕")
    private String issueDescription;
    @Schema(description = "客户诉求反馈描述")
    private String feedbackDescription;
    @Schema(description = "处理结果描述")
    private String resultDescription;
    @Schema(description = "严重程度: 0-轻微 1-一般 2-严重 3-致命", example = "1")
    private Integer severityLevel;
yudao-module-aftersales/src/main/java/cn/iocoder/yudao/module/aftersales/controller/admin/ticket/vo/ticket/AfterSaleTicketSaveReqVO.java
@@ -50,6 +50,12 @@
    @Schema(description = "问题描述", example = "收到货后发现产品表面有划痕")
    private String issueDescription;
    @Schema(description = "客户诉求反馈描述")
    private String feedbackDescription;
    @Schema(description = "处理结果描述")
    private String resultDescription;
    @Schema(description = "严重程度: 0-轻微 1-一般 2-严重 3-致命", example = "1")
    private Integer severityLevel;
yudao-module-aftersales/src/main/java/cn/iocoder/yudao/module/aftersales/dal/dataobject/ticket/AfterSaleTicketDO.java
@@ -70,6 +70,12 @@
     * é—®é¢˜æè¿°
     */
    private String issueDescription;
    /** å®¢æˆ·è¯‰æ±‚反馈描述 */
    private String feedbackDescription;
    /** å¤„理结果描述 */
    private String resultDescription;
    /**
     * ä¸¥é‡ç¨‹åº¦: 0-轻微 1-一般 2-严重 3-致命
     */
yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/BpmOANoticeController.java
@@ -8,6 +8,7 @@
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.OaNoticeSaveReqVO;
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.OaNoticeDO;
import cn.iocoder.yudao.module.bpm.service.oa.OaNoticeService;
import cn.iocoder.yudao.module.system.api.storage.StorageAttachmentApi;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -28,6 +29,9 @@
    @Resource
    private OaNoticeService oaNoticeService;
    @Resource
    private StorageAttachmentApi storageAttachmentApi;
    @PostMapping("/create")
    @Operation(summary = "创建通知公告")
@@ -65,7 +69,9 @@
    @Parameter(name = "id", description = "编号", required = true, example = "1024")
    public CommonResult<OaNoticeRespVO> getNotice(@RequestParam("id") Long id) {
        OaNoticeDO notice = oaNoticeService.getNotice(id, getLoginUserId());
        return success(BeanUtils.toBean(notice, OaNoticeRespVO.class));
        OaNoticeRespVO respVO = BeanUtils.toBean(notice, OaNoticeRespVO.class);
        respVO.setAttachmentList(storageAttachmentApi.listAttachments("oa_notice", id));
        return success(respVO);
    }
    @GetMapping("/my-unread-count")
yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/OaNoticeRespVO.java
@@ -5,6 +5,7 @@
import java.time.LocalDateTime;
import java.util.List;
import cn.iocoder.yudao.module.system.api.storage.dto.StorageBlobRespDTO;
@Schema(description = "管理后台 - é€šçŸ¥å…¬å‘Š Response VO")
@Data
@@ -49,4 +50,7 @@
    @Schema(description = "当前用户是否已读", example = "true")
    private Boolean isRead;
    @Schema(description = "附件列表")
    private List<StorageBlobRespDTO> attachmentList;
}
yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/vo/OaNoticeSaveReqVO.java
@@ -42,4 +42,7 @@
    @Schema(description = "指定用户ID列表(sendScope=2时必填)", example = "[1, 2, 3]")
    private List<Long> userIds;
    @Schema(description = "附件 BlobId åˆ—表")
    private List<Long> blobIds;
}
yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/OaNoticeServiceImpl.java
@@ -17,6 +17,7 @@
import cn.iocoder.yudao.module.system.dal.mysql.notify.NotifyMessageMapper;
import cn.iocoder.yudao.module.system.service.notify.NotifySendService;
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
import cn.iocoder.yudao.module.system.api.storage.StorageAttachmentApi;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -54,6 +55,9 @@
    @Resource
    private NotifyMessageMapper notifyMessageMapper;
    @Resource
    private StorageAttachmentApi storageAttachmentApi;
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Long createNotice(Long userId, OaNoticeSaveReqVO createReqVO) {
@@ -64,6 +68,7 @@
            notice.setPublishTime(LocalDateTime.now());
        }
        oaNoticeMapper.insert(notice);
        storageAttachmentApi.bindAttachments("file", "oa_notice", notice.getId(), createReqVO.getBlobIds());
        // æŒ‡å®šäººå†™å…¥å…³è”表
        if (OaNoticeSendScopeEnum.SPECIFIED.getScope().equals(createReqVO.getSendScope())
@@ -93,6 +98,7 @@
            updateObj.setPublishTime(LocalDateTime.now());
        }
        oaNoticeMapper.updateById(updateObj);
        storageAttachmentApi.updateAttachments("file", "oa_notice", updateReqVO.getId(), updateReqVO.getBlobIds());
        // æ›´æ–°æŒ‡å®šäººå…³è”
        oaNoticeUserMapper.deleteByNoticeId(updateReqVO.getId());
@@ -120,6 +126,7 @@
    public void deleteNotice(Long id) {
        validateNoticeExists(id);
        oaNoticeMapper.deleteById(id);
        storageAttachmentApi.deleteAttachmentsByRecord("oa_notice", id);
        oaNoticeUserMapper.deleteByNoticeId(id);
    }
yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/invoice/vo/invoice/CrmInvoiceRespVO.java
@@ -44,6 +44,15 @@
    @ExcelProperty("开票金额")
    private BigDecimal price;
    @Schema(description = "合同金额")
    private BigDecimal contractAmount;
    @Schema(description = "预付款金额")
    private BigDecimal prepaymentAmount;
    @Schema(description = "到货款金额")
    private BigDecimal deliveryAmount;
    @Schema(description = "验收款金额")
    private BigDecimal acceptanceAmount;
    @Schema(description = "开票日期", requiredMode = Schema.RequiredMode.REQUIRED, example = "2024-02-02")
    @ExcelProperty("开票日期")
    private LocalDateTime invoiceTime;
@@ -57,6 +66,10 @@
    @Schema(description = "合同编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty("合同编号")
    private Long contractId;
    @Schema(description = "关联销售订单")
    private Long saleOrderId;
    @Schema(description = "关联出库单")
    private Long saleOutId;
    @Schema(description = "合同信息")
    private CrmContractRespVO contract;
yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/invoice/vo/invoice/CrmInvoiceSaveReqVO.java
@@ -25,6 +25,12 @@
    @NotNull(message = "合同编号不能为空")
    private Long contractId;
    @Schema(description = "关联销售订单")
    private Long saleOrderId;
    @Schema(description = "关联出库单")
    private Long saleOutId;
    @Schema(description = "负责人编号", example = "25682")
    private Long ownerUserId;
@@ -42,6 +48,18 @@
    @NotNull(message = "开票金额不能为空")
    private BigDecimal price;
    @Schema(description = "合同金额")
    private BigDecimal contractAmount;
    @Schema(description = "预付款金额")
    private BigDecimal prepaymentAmount;
    @Schema(description = "到货款金额")
    private BigDecimal deliveryAmount;
    @Schema(description = "验收款金额")
    private BigDecimal acceptanceAmount;
    @Schema(description = "开票日期", requiredMode = Schema.RequiredMode.REQUIRED, example = "2024-02-02")
    @NotNull(message = "开票日期不能为空")
    private LocalDateTime invoiceTime;
yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/invoice/CrmInvoiceDO.java
@@ -49,6 +49,12 @@
     * å…³è” {@link CrmContractDO#getId()}
     */
    private Long contractId;
    /** å…³è”销售订单 */
    private Long saleOrderId;
    /** å…³è”出库单 */
    private Long saleOutId;
    /**
     * è´Ÿè´£äººç¼–号,关联 {@link AdminUserRespDTO#getId()}
     */
@@ -72,6 +78,11 @@
     * å¼€ç¥¨é‡‘额,单位:元
     */
    private BigDecimal price;
    private BigDecimal contractAmount;
    private BigDecimal prepaymentAmount;
    private BigDecimal deliveryAmount;
    private BigDecimal acceptanceAmount;
    /**
     * å¼€ç¥¨æ—¥æœŸ
     */
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/vo/invoice/ErpPurchaseInvoiceSaveReqVO.java
@@ -22,6 +22,9 @@
    @NotNull(message = "采购订单编号不能为空")
    private Long purchaseOrderId;
    @Schema(description = "关联入库单")
    private Long arrivalNoticeId;
    @Schema(description = "发票号码", example = "02564178")
    private String invoiceNo;
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/purchase/ErpPurchaseInvoiceDO.java
@@ -45,6 +45,9 @@
     * å…³è” {@link ErpPurchaseOrderDO#getId()}
     */
    private Long purchaseOrderId;
    /** å…³è”入库单 */
    private Long arrivalNoticeId;
    /**
     * å‘票号码
     */
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/approval/vo/HrmResignationApplicationRespVO.java
@@ -48,11 +48,17 @@
    @Schema(description = "交接人ID", example = "1")
    private Long handoverUserId;
    @Schema(description = "交接员工ID")
    private Long handoverEmployeeId;
    @Schema(description = "交接人姓名", example = "李四")
    private String handoverUserName;
    @Schema(description = "交接状态", example = "0")
    private Integer handoverStatus;
    @Schema(description = "用户数据交接状态:0未开始 10进行中 20已完成")
    private Integer handoverDataStatus;
    @Schema(description = "交接状态名称", example = "未开始")
    private String handoverStatusName;
@@ -81,4 +87,4 @@
    @Schema(description = "创建时间", example = "2024-01-01 09:00:00")
    private LocalDateTime createTime;
}
}
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/controller/admin/approval/vo/HrmResignationApplicationSaveReqVO.java
@@ -36,6 +36,9 @@
    @Schema(description = "交接人ID", example = "1")
    private Long handoverUserId;
    @Schema(description = "交接员工ID", example = "1")
    private Long handoverEmployeeId;
    @Schema(description = "交接说明", example = "交接说明")
    private String handoverRemark;
@@ -45,4 +48,4 @@
    @Schema(description = "备注", example = "备注信息")
    private String remark;
}
}
yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/dal/dataobject/approval/HrmResignationApplicationDO.java
@@ -78,6 +78,9 @@
     */
    private Long handoverUserId;
    /** äº¤æŽ¥å‘˜å·¥ID */
    private Long handoverEmployeeId;
    /**
     * äº¤æŽ¥çŠ¶æ€
     *
@@ -85,6 +88,9 @@
     */
    private Integer handoverStatus;
    /** ç”¨æˆ·æ•°æ®äº¤æŽ¥çŠ¶æ€ï¼š0未开始 10进行中 20已完成 */
    private Integer handoverDataStatus;
    /**
     * äº¤æŽ¥è¯´æ˜Ž
     */