From 885d148014791ec5f7eef0aa483a2f431fce57ed Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期一, 03 十一月 2025 21:50:44 +0800
Subject: [PATCH] 新增

---
 ruoyi-system/src/main/java/com/ruoyi/system/dto/TCrmSupplierVerifyDTO.java                  |   25 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysOtherConfigController.java       |   15 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java                          |   11 
 ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TSysNoticeController.java           |   55 +++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysNoticeController.java            |  139 ++++++++
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysNoticeServiceImpl.java         |   47 ++
 ruoyi-system/src/main/java/com/ruoyi/system/query/TCrmSupplierVerifyQuery.java              |   24 +
 ruoyi-system/src/main/java/com/ruoyi/system/query/TSysNoticeQuery.java                      |   21 +
 ruoyi-system/src/main/java/com/ruoyi/system/service/TSysNoticeService.java                  |   32 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmSupplierVerifyController.java    |  146 ++++++++
 ruoyi-system/src/main/java/com/ruoyi/system/model/TSysNotice.java                           |   59 +++
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmSupplierVerifyServiceImpl.java |   33 +
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysNoticeMapper.java                    |   26 +
 ruoyi-system/src/main/resources/mapper/system/TCrmSupplierMapper.xml                        |   22 +
 ruoyi-system/src/main/resources/mapper/system/TSysQualificationsMapper.xml                  |    4 
 ruoyi-system/src/main/java/com/ruoyi/system/service/TCrmSupplierVerifyService.java          |   25 +
 ruoyi-system/src/main/java/com/ruoyi/system/model/TSysOtherConfig.java                      |    7 
 ruoyi-system/src/main/java/com/ruoyi/system/query/SysOperLogQuery.java                      |    8 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TCrmSupplierVerifyMapper.java            |   27 +
 ruoyi-system/src/main/java/com/ruoyi/system/model/TCrmSupplierVerify.java                   |   67 +++
 ruoyi-system/src/main/java/com/ruoyi/system/model/TSysQualifications.java                   |    8 
 ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml                          |   12 
 ruoyi-system/src/main/resources/mapper/system/TSysOtherConfigMapper.xml                     |    5 
 ruoyi-system/src/main/java/com/ruoyi/system/vo/TSysNoticeVO.java                            |   15 
 ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java                |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/query/TCrmSupplierQuery.java                    |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/vo/TCrmSupplierVerifyVO.java                    |   28 +
 ruoyi-system/src/main/java/com/ruoyi/system/model/TCrmSupplier.java                         |   44 ++
 ruoyi-system/src/main/resources/mapper/system/TCrmSupplierVerifyMapper.xml                  |   43 ++
 ruoyi-system/src/main/resources/mapper/system/TSysNoticeMapper.xml                          |   51 +++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmSupplierController.java          |   14 
 31 files changed, 1,011 insertions(+), 6 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmSupplierController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmSupplierController.java
index 6e86aa1..3d95772 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmSupplierController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmSupplierController.java
@@ -115,6 +115,16 @@
     }
 
     /**
+     * 查看crm供应商管理详情
+     */
+    @ApiOperation(value = "查看crm供应商管理资质证照")
+    @GetMapping(value = "/getDetailQualificationById")
+    public R<TCrmSupplier> getDetailQualificationById(@RequestParam String id) {
+        TCrmSupplier crmSupplier = crmSupplierService.getById(id);
+        return R.ok(crmSupplier);
+    }
+
+    /**
      * 删除crm供应商管理
      */
     @Log(title = "crm供应商管理信息-删除crm供应商管理", businessType = BusinessType.DELETE)
@@ -148,9 +158,11 @@
     @ApiOperation(value = "供应商管理解冻冻结",notes = "状态 1=使用中 2=冻结")
     @PutMapping(value = "/thawOrFreeze")
     public R<Boolean> thawOrFreeze(@RequestParam(value = "id")String id,
-                                   @RequestParam(value = "status")Integer status) {
+                                   @RequestParam(value = "status")Integer status,
+                                   @RequestParam(value = "freezingReason",required = false)String freezingReason) {
         TCrmSupplier crmSupplier = crmSupplierService.getById(id);
         crmSupplier.setStatus(status);
+        crmSupplier.setFreezingReason(freezingReason);
         crmSupplierService.updateById(crmSupplier);
         // 查询用户
         SysUser sysUser = sysUserService.selectUserById(crmSupplier.getUserId());
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmSupplierVerifyController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmSupplierVerifyController.java
new file mode 100644
index 0000000..3bffee6
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmSupplierVerifyController.java
@@ -0,0 +1,146 @@
+package com.ruoyi.web.controller.api;
+
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.system.dto.TCrmSupplierVerifyDTO;
+import com.ruoyi.system.model.TCrmSupplier;
+import com.ruoyi.system.model.TCrmSupplierVerify;
+import com.ruoyi.system.query.TCrmSupplierVerifyQuery;
+import com.ruoyi.system.service.TCrmSupplierService;
+import com.ruoyi.system.service.TCrmSupplierVerifyService;
+import com.ruoyi.system.vo.TCrmSupplierVerifyVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * <p>
+ * 供应商资质核查 前端控制器
+ * </p>
+ *
+ * @author xiaochen
+ * @since 2025-11-03
+ */
+@Api(tags = "供应商资质核查")
+@RestController
+@RequestMapping("/t-crm-supplier-verify")
+public class TCrmSupplierVerifyController {
+
+    private final TCrmSupplierVerifyService crmSupplierVerifyService;
+    private final TokenService tokenService;
+    private final TCrmSupplierService crmSupplierService;
+    @Autowired
+    public TCrmSupplierVerifyController(TCrmSupplierVerifyService crmSupplierVerifyService, TokenService tokenService, TCrmSupplierService crmSupplierService) {
+        this.crmSupplierVerifyService = crmSupplierVerifyService;
+        this.tokenService = tokenService;
+        this.crmSupplierService = crmSupplierService;
+    }
+    /**
+     * 获取供应商资质核查管理列表
+     */
+    @ApiOperation(value = "获取供应商资质核查分页列表")
+    @PostMapping(value = "/pageList")
+    public R<PageInfo<TCrmSupplierVerifyVO>> pageList(@RequestBody TCrmSupplierVerifyQuery query) {
+        return R.ok(crmSupplierVerifyService.pageList(query));
+    }
+
+    /**
+     * 查看供应商资质核查详情
+     */
+    @ApiOperation(value = "查看供应商资质核查详情")
+    @GetMapping(value = "/getDetailById")
+    public R<TCrmSupplierVerifyVO> getDetailById(@RequestParam String id) {
+        TCrmSupplierVerify crmSupplierVerify = crmSupplierVerifyService.getById(id);
+        if (crmSupplierVerify == null) {
+            return R.fail("供应商资质核查不存在");
+        }
+        TCrmSupplierVerifyVO tCrmSupplierVerifyVO = new TCrmSupplierVerifyVO();
+        BeanUtils.copyProperties(crmSupplierVerify, tCrmSupplierVerifyVO);
+        // 查询供应商信息
+        TCrmSupplier crmSupplier = crmSupplierService.getById(crmSupplierVerify.getSupplierId());
+        tCrmSupplierVerifyVO.setCrmSupplier(crmSupplier);
+        return R.ok(tCrmSupplierVerifyVO);
+    }
+
+    /**
+     * 查看供应商资质核查详情
+     */
+    @Log(title = "供应商资质核查-核查", businessType = BusinessType.UPDATE)
+    @ApiOperation(value = "供应商资质核查")
+    @GetMapping(value = "/supplierVerify")
+    public R<String> supplierVerify(@RequestBody TCrmSupplierVerifyDTO dto) {
+        TCrmSupplierVerify crmSupplierVerify = crmSupplierVerifyService.getById(dto.getId());
+        if (crmSupplierVerify == null) {
+            return R.fail("供应商资质核查不存在");
+        }
+        String nickName = tokenService.getLoginUser().getUser().getNickName();
+        crmSupplierVerify.setStatus(dto.getStatus());
+        crmSupplierVerify.setVerifyTime(LocalDate.now());
+        crmSupplierVerify.setOperationName(nickName);
+        crmSupplierVerify.setOperationTime(LocalDateTime.now());
+        crmSupplierVerify.setVerifyRemark(dto.getVerifyRemark());
+        crmSupplierVerifyService.updateById(crmSupplierVerify);
+        return R.ok();
+    }
+
+    /**
+     * 查看供应商资质核查详情
+     */
+    @Log(title = "供应商资质核查-批量核查", businessType = BusinessType.UPDATE)
+    @ApiOperation(value = "供应商资质批量核查")
+    @GetMapping(value = "/supplierVerifyBatch")
+    public R<String> supplierVerifyBatch(@RequestBody TCrmSupplierVerifyDTO dto) {
+        if(CollectionUtils.isEmpty(dto.getIds())){
+            return R.fail("请选择要核查的供应商资质");
+        }
+        List<TCrmSupplierVerify> crmSupplierVerifyList = crmSupplierVerifyService.list(Wrappers.lambdaQuery(TCrmSupplierVerify.class)
+                .in(TCrmSupplierVerify::getId, dto.getIds()));
+        if (CollectionUtils.isEmpty(crmSupplierVerifyList)) {
+            return R.fail("供应商资质核查不存在");
+        }
+        String nickName = tokenService.getLoginUser().getUser().getNickName();
+        for (TCrmSupplierVerify crmSupplierVerify : crmSupplierVerifyList) {
+            crmSupplierVerify.setStatus(dto.getStatus());
+            crmSupplierVerify.setVerifyTime(LocalDate.now());
+            crmSupplierVerify.setOperationName(nickName);
+            crmSupplierVerify.setOperationTime(LocalDateTime.now());
+            crmSupplierVerify.setVerifyRemark(dto.getVerifyRemark());
+        }
+        crmSupplierVerifyService.updateBatchById(crmSupplierVerifyList);
+        return R.ok();
+    }
+
+    /**
+     * 删除供应商资质核查
+     */
+    @Log(title = "供应商资质核查信息-删除供应商资质核查", businessType = BusinessType.DELETE)
+    @ApiOperation(value = "删除供应商资质核查")
+    @DeleteMapping(value = "/deleteById")
+    public R<Boolean> deleteById(@RequestParam String id) {
+        return R.ok(crmSupplierVerifyService.removeById(id));
+    }
+
+    /**
+     * 批量删除供应商资质核查
+     */
+    @Log(title = "供应商资质核查信息-删除供应商资质核查", businessType = BusinessType.DELETE)
+    @ApiOperation(value = "批量删除供应商资质核查")
+    @DeleteMapping(value = "/deleteByIds")
+    public R<Boolean> deleteByIds(@RequestBody List<String> ids) {
+        return R.ok(crmSupplierVerifyService.removeByIds(ids));
+    }
+    
+}
+
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysNoticeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysNoticeController.java
new file mode 100644
index 0000000..345f0bb
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysNoticeController.java
@@ -0,0 +1,139 @@
+package com.ruoyi.web.controller.api;
+
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.system.model.TSysNotice;
+import com.ruoyi.system.query.TSysNoticeQuery;
+import com.ruoyi.system.service.TSysNoticeService;
+import com.ruoyi.system.vo.TSysNoticeVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * <p>
+ * 公告管理 前端控制器
+ * </p>
+ *
+ * @author xiaochen
+ * @since 2025-11-03
+ */
+@Api(tags = "公告管理")
+@RestController
+@RequestMapping("/t-sys-notice")
+public class TSysNoticeController {
+    private final TSysNoticeService sysNoticeService;
+    private final TokenService tokenService;
+    @Autowired
+    public TSysNoticeController(TSysNoticeService sysNoticeService, TokenService tokenService) {
+        this.sysNoticeService = sysNoticeService;
+        this.tokenService = tokenService;
+    }
+    /**
+     * 获取公告管理管理列表
+     */
+    @ApiOperation(value = "获取公告管理分页列表")
+    @PostMapping(value = "/pageList")
+    public R<PageInfo<TSysNoticeVO>> pageList(@RequestBody TSysNoticeQuery query) {
+        return R.ok(sysNoticeService.pageList(query));
+    }
+
+    /**
+     * 获取公告管理管理列表
+     */
+    @ApiOperation(value = "获取公告管理列表-诊所-供应商使用")
+    @PostMapping(value = "/list")
+    public R<List<TSysNotice>> list() {
+
+        Integer roleType = tokenService.getLoginUser().getUser().getRoleType();
+        if(roleType == 4){
+            // 供应商
+            List<TSysNotice> list = sysNoticeService.list(Wrappers.lambdaQuery(TSysNotice.class)
+                    .like(TSysNotice::getDisplayLocation, 1)
+                    .eq(TSysNotice::getStatus, 1)
+                    .le(TSysNotice::getStartTime, LocalDateTime.now())
+                    .ge(TSysNotice::getEndTime, LocalDateTime.now())
+                    .orderByDesc(TSysNotice::getCreateTime));
+            return R.ok(list);
+        }
+        if(roleType == 5){
+            // 诊所
+            List<TSysNotice> list = sysNoticeService.list(Wrappers.lambdaQuery(TSysNotice.class)
+                    .like(TSysNotice::getDisplayLocation, 2)
+                    .eq(TSysNotice::getStatus, 1)
+                    .le(TSysNotice::getStartTime, LocalDateTime.now())
+                    .ge(TSysNotice::getEndTime, LocalDateTime.now())
+                    .orderByDesc(TSysNotice::getCreateTime));
+            return R.ok(list);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 添加公告管理管理
+     */
+    @Log(title = "公告管理信息-新增公告管理", businessType = BusinessType.INSERT)
+    @ApiOperation(value = "添加公告管理")
+    @PostMapping(value = "/add")
+    public R<Boolean> add(@Validated @RequestBody TSysNotice dto) {
+        if (sysNoticeService.isExit(dto)) {
+            return R.fail("公告标题已存在");
+        }
+        return R.ok(sysNoticeService.save(dto));
+    }
+
+    /**
+     * 修改公告管理
+     */
+    @Log(title = "公告管理信息-修改公告管理", businessType = BusinessType.UPDATE)
+    @ApiOperation(value = "修改公告管理")
+    @PostMapping(value = "/update")
+    public R<Boolean> update(@Validated @RequestBody TSysNotice dto) {
+        if (sysNoticeService.isExit(dto)) {
+            return R.fail("公告标题已存在");
+        }
+        return R.ok(sysNoticeService.updateById(dto));
+    }
+
+    /**
+     * 查看公告管理详情
+     */
+    @ApiOperation(value = "查看公告管理详情")
+    @GetMapping(value = "/getDetailById")
+    public R<TSysNotice> getDetailById(@RequestParam String id) {
+        return R.ok(sysNoticeService.getById(id));
+    }
+
+    /**
+     * 删除公告管理
+     */
+    @Log(title = "公告管理信息-删除公告管理", businessType = BusinessType.DELETE)
+    @ApiOperation(value = "删除公告管理")
+    @DeleteMapping(value = "/deleteById")
+    public R<Boolean> deleteById(@RequestParam String id) {
+        return R.ok(sysNoticeService.removeById(id));
+    }
+
+    /**
+     * 批量删除公告管理
+     */
+    @Log(title = "公告管理信息-删除公告管理", businessType = BusinessType.DELETE)
+    @ApiOperation(value = "批量删除公告管理")
+    @DeleteMapping(value = "/deleteByIds")
+    public R<Boolean> deleteByIds(@RequestBody List<String> ids) {
+        return R.ok(sysNoticeService.removeByIds(ids));
+    }
+    
+
+}
+
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysOtherConfigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysOtherConfigController.java
index ceed956..0424977 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysOtherConfigController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysOtherConfigController.java
@@ -48,5 +48,20 @@
         TSysOtherConfig sysConfig = sysOtherConfigService.getById(1);
         return R.ok(sysConfig);
     }
+
+    /**
+     * 修改其他设置
+     */
+    @Log(title = "供应商资质核查-修改核查周期", businessType = BusinessType.UPDATE)
+    @ApiOperation(value = "修改核查周期")
+    @PostMapping(value = "/updateVerify")
+    public R<Boolean> updateVerify(@RequestParam(value = "verifyValue") Integer verifyValue,
+                                   @RequestParam(value = "verifyUnit") Integer verifyUnit) {
+        TSysOtherConfig sysConfig = sysOtherConfigService.getById(1);
+        sysConfig.setVerifyValue(verifyValue);
+        sysConfig.setVerifyUnit(verifyUnit);
+        return R.ok();
+    }
+
 }
 
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TSysNoticeController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TSysNoticeController.java
new file mode 100644
index 0000000..7110426
--- /dev/null
+++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/TSysNoticeController.java
@@ -0,0 +1,55 @@
+package com.ruoyi.web.controller.api;
+
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.system.model.TSysNotice;
+import com.ruoyi.system.service.TSysNoticeService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * <p>
+ * 公告管理 前端控制器
+ * </p>
+ *
+ * @author xiaochen
+ * @since 2025-11-03
+ */
+@Api(tags = "公告管理")
+@RestController
+@RequestMapping("/t-sys-notice")
+public class TSysNoticeController {
+    private final TSysNoticeService sysNoticeService;
+    private final TokenService tokenService;
+    @Autowired
+    public TSysNoticeController(TSysNoticeService sysNoticeService, TokenService tokenService) {
+        this.sysNoticeService = sysNoticeService;
+        this.tokenService = tokenService;
+    }
+
+    /**
+     * 获取公告管理管理列表
+     */
+    @ApiOperation(value = "获取公告管理列表")
+    @PostMapping(value = "/list")
+    public R<List<TSysNotice>> list() {
+        List<TSysNotice> list = sysNoticeService.list(Wrappers.lambdaQuery(TSysNotice.class)
+                .like(TSysNotice::getDisplayLocation, 3)
+                .eq(TSysNotice::getStatus, 1)
+                .le(TSysNotice::getStartTime, LocalDateTime.now())
+                .ge(TSysNotice::getEndTime, LocalDateTime.now())
+                .orderByDesc(TSysNotice::getCreateTime));
+        return R.ok(list);
+    }
+
+}
+
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
index db1c997..a5d7acc 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
@@ -123,7 +123,7 @@
                         "/t-sys-banner/pageList","/t-sys-banner/list","/t-sys-product-introduction/pageList",
                         "/t-sys-product-introduction/list","/t-sys-product-introduction/getDetailById","/t-sys-config/getDetailById",
                         "/t-sys-educational-info/list","/t-sys-educational-info/getDetailById","/t-sys-educational-info/pageList",
-                        "/t-sys-live/list","/t-sys-live/getDetailById","/t-sys-live/pageList",
+                        "/t-sys-live/list","/t-sys-live/getDetailById","/t-sys-live/pageList","/t-sys-qualifications/list",
                         "/open/**","/cos/get/**","/openIdByJsCode","/t-sys-order/**","/openIdByCode","/tRegion/sendTest"
                 ).permitAll()
                 // 静态资源,可匿名访问
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java
index 19b3ca0..2506ec6 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java
@@ -6,6 +6,7 @@
 import cn.afterturn.easypoi.excel.annotation.Excel;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModelProperty;
 
 /**
  * 操作日志记录表 oper_log
@@ -21,10 +22,12 @@
     private Long operId;
 
     /** 操作模块 */
+    @ApiModelProperty(value = "操作模块 标题")
     @Excel(name = "操作模块")
     private String title;
 
     /** 业务类型(0=其它,1=新增,2=修改,3=删除,4=授权,5=导出,6=导入,7=强退,8=生成代码,9=清空数据) */
+    @ApiModelProperty(value = "业务类型(0=其它,1=新增,2=修改,3=删除,4=授权,5=导出,6=导入,7=强退,8=生成代码,9=清空数据) ")
     @Excel(name = "业务类型")
     private Integer businessType;
 
@@ -36,14 +39,17 @@
     private String method;
 
     /** 请求方式 */
+    @ApiModelProperty(value = "请求方式")
     @Excel(name = "请求方式")
     private String requestMethod;
 
     /** 操作类别(0其它 1后台用户 2手机端用户) */
+    @ApiModelProperty(value = "操作类别(0其它 1后台用户 2手机端用户)")
     @Excel(name = "操作类别")
     private Integer operatorType;
 
     /** 操作人员 */
+    @ApiModelProperty(value = "操作人员账号")
     @Excel(name = "操作人员")
     private String operName;
 
@@ -56,10 +62,12 @@
     private String operUrl;
 
     /** 操作地址 */
+    @ApiModelProperty(value = "操作地址IP")
     @Excel(name = "操作地址")
     private String operIp;
 
     /** 操作地点 */
+    @ApiModelProperty(value = "操作地点")
     @Excel(name = "操作地点")
     private String operLocation;
 
@@ -72,6 +80,7 @@
     private String jsonResult;
 
     /** 操作状态(0正常 1异常) */
+    @ApiModelProperty(value = "状态 0正常 1异常")
     @Excel(name = "状态")
     private Integer status;
 
@@ -80,6 +89,7 @@
     private String errorMsg;
 
     /** 操作时间 */
+    @ApiModelProperty(value = "操作时间")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @Excel(name = "操作时间", width = 30, exportFormat = "yyyy-MM-dd HH:mm:ss")
     private Date operTime;
@@ -97,6 +107,7 @@
     private String phonenumber;
     @Excel(name = "用户id")
     private Long userId;
+    @ApiModelProperty(value = "操作人员名称")
     @Excel(name = "操作人员名称")
     private String nickName;
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/TCrmSupplierVerifyDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/TCrmSupplierVerifyDTO.java
new file mode 100644
index 0000000..b0ed84d
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/TCrmSupplierVerifyDTO.java
@@ -0,0 +1,25 @@
+package com.ruoyi.system.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+@ApiModel(value = "供应商资质核查TCrmSupplierVerifyDTO")
+public class TCrmSupplierVerifyDTO implements Serializable {
+
+    @ApiModelProperty(value = "核查id集合")
+    private List<String> ids;
+
+    @ApiModelProperty(value = "核查id")
+    private String id;
+
+    @ApiModelProperty(value = "核查状态 1=未核查 2=已核查")
+    private Integer status;
+
+    @ApiModelProperty(value = "核查备注")
+    private String verifyRemark;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TCrmSupplierVerifyMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TCrmSupplierVerifyMapper.java
new file mode 100644
index 0000000..087d8c3
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TCrmSupplierVerifyMapper.java
@@ -0,0 +1,27 @@
+package com.ruoyi.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.model.TCrmSupplierVerify;
+import com.ruoyi.system.query.TCrmSupplierVerifyQuery;
+import com.ruoyi.system.vo.TCrmSupplierVerifyVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 供应商资质核查 Mapper 接口
+ * </p>
+ *
+ * @author xiaochen
+ * @since 2025-11-03
+ */
+public interface TCrmSupplierVerifyMapper extends BaseMapper<TCrmSupplierVerify> {
+
+    /**
+     * 获取供应商资质核查列表
+     */
+    List<TCrmSupplierVerifyVO> pageList(@Param("query") TCrmSupplierVerifyQuery query, @Param("pageInfo")PageInfo<TCrmSupplierVerifyVO> pageInfo);
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysNoticeMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysNoticeMapper.java
new file mode 100644
index 0000000..88cc070
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysNoticeMapper.java
@@ -0,0 +1,26 @@
+package com.ruoyi.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.model.TSysNotice;
+import com.ruoyi.system.query.TSysNoticeQuery;
+import com.ruoyi.system.vo.TSysNoticeVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 公告管理 Mapper 接口
+ * </p>
+ *
+ * @author xiaochen
+ * @since 2025-11-03
+ */
+public interface TSysNoticeMapper extends BaseMapper<TSysNotice> {
+
+    /**
+     * 获取公告管理列表
+     */
+    List<TSysNoticeVO> pageList(@Param("query") TSysNoticeQuery query, @Param("pageInfo")PageInfo<TSysNoticeVO> pageInfo);
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TCrmSupplier.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TCrmSupplier.java
index 5e44a30..ee1c78e 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TCrmSupplier.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TCrmSupplier.java
@@ -80,4 +80,48 @@
     @TableField("warehouse_id")
     private String warehouseId;
 
+    @ApiModelProperty(value = "冻结原因")
+    @TableField("freezing_reason")
+    private String freezingReason;
+
+    @ApiModelProperty(value = "统一社会信用代码")
+    @TableField("credit_code")
+    private String creditCode;
+
+    @ApiModelProperty(value = "经营地址")
+    @TableField("business_address")
+    private String businessAddress;
+
+    @ApiModelProperty(value = "经营方式")
+    @TableField("business_model")
+    private String businessModel;
+
+    @ApiModelProperty(value = "经营范围")
+    @TableField("business_nature")
+    private String businessNature;
+
+    @ApiModelProperty(value = "联系人住址")
+    @TableField("contact_person_address")
+    private String contactPersonAddress;
+
+    @ApiModelProperty(value = "经营品类 ,逗号分割 1=药品 2=食品 3=消毒品 4=医疗器械")
+    @TableField("business_category")
+    private String businessCategory;
+
+    @ApiModelProperty(value = "医疗器械类,逗号分割 1=一类 2=二类 3=三类")
+    @TableField("medical_devices")
+    private String medicalDevices;
+
+    @ApiModelProperty(value = "身份证正面")
+    @TableField("front_side")
+    private String frontSide;
+
+    @ApiModelProperty(value = "身份证反面")
+    @TableField("reverse_side")
+    private String reverseSide;
+
+    @ApiModelProperty(value = "供应商唯一标识ID")
+    @TableField("unique_identifier_id")
+    private String uniqueIdentifierId;
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TCrmSupplierVerify.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TCrmSupplierVerify.java
new file mode 100644
index 0000000..21483dd
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TCrmSupplierVerify.java
@@ -0,0 +1,67 @@
+package com.ruoyi.system.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 供应商资质核查
+ * </p>
+ *
+ * @author xiaochen
+ * @since 2025-11-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("t_crm_supplier_verify")
+@ApiModel(value="TCrmSupplierVerify对象", description="供应商资质核查")
+public class TCrmSupplierVerify implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private String id;
+
+    @ApiModelProperty(value = "供应商id")
+    @TableField("supplier_id")
+    private String supplierId;
+
+    @ApiModelProperty(value = "核查状态 1=未核查 2=已核查")
+    @TableField("status")
+    private Integer status;
+
+    @ApiModelProperty(value = "核查备注")
+    @TableField("verify_remark")
+    private String verifyRemark;
+
+    @ApiModelProperty(value = "生成时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @TableField("generate_time")
+    private LocalDate generateTime;
+
+    @ApiModelProperty(value = "核查时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @TableField("verify_time")
+    private LocalDate verifyTime;
+
+    @ApiModelProperty(value = "操作人")
+    @TableField("operation_name")
+    private String operationName;
+
+    @ApiModelProperty(value = "操作时间")
+    @TableField("operation_time")
+    private LocalDateTime operationTime;
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysNotice.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysNotice.java
new file mode 100644
index 0000000..ebc7a2a
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysNotice.java
@@ -0,0 +1,59 @@
+package com.ruoyi.system.model;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseModel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 公告管理
+ * </p>
+ *
+ * @author xiaochen
+ * @since 2025-11-03
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("t_sys_notice")
+@ApiModel(value="TSysNotice对象", description="公告管理")
+public class TSysNotice extends BaseModel {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private String id;
+
+    @ApiModelProperty(value = "公告标题")
+    @TableField("notice_title")
+    private String noticeTitle;
+
+    @ApiModelProperty(value = "展示位置,逗号分割 1=供应商 2=诊所 3=患者 ")
+    @TableField("display_location")
+    private String displayLocation;
+
+    @ApiModelProperty(value = "公告内容")
+    @TableField("notice_content")
+    private String noticeContent;
+
+    @ApiModelProperty(value = "开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField("start_time")
+    private LocalDateTime startTime;
+
+    @ApiModelProperty(value = "结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField("end_time")
+    private LocalDateTime endTime;
+
+    @ApiModelProperty(value = "启用状态 1=启用 2=禁用")
+    @TableField("status")
+    private Integer status;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysOtherConfig.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysOtherConfig.java
index 53b23d9..41fe5f9 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysOtherConfig.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysOtherConfig.java
@@ -55,5 +55,12 @@
     @TableField("delivery_time")
     private Integer deliveryTime;
 
+    @ApiModelProperty(value = "供应商核查的周期值")
+    @TableField("verify_value")
+    private Integer verifyValue;
+
+    @ApiModelProperty(value = "核查周期单位 1=天 2=月 3=年(365)")
+    @TableField("verify_unit")
+    private Integer verifyUnit;
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysQualifications.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysQualifications.java
index 999dadd..f733473 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysQualifications.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysQualifications.java
@@ -37,6 +37,14 @@
     @TableField("qualifications_content")
     private String qualificationsContent;
 
+    @ApiModelProperty(value = "类型 1=富文本 2=链接")
+    @TableField("qualifications_type")
+    private Integer qualificationsType;
+
+    @ApiModelProperty(value = "备案号")
+    @TableField("record_number")
+    private String recordNumber;
+
     @ApiModelProperty(value = "状态 1=上架 2=下架")
     @TableField("status")
     private Integer status;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/SysOperLogQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/SysOperLogQuery.java
index f316f75..79cc1ad 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/SysOperLogQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/SysOperLogQuery.java
@@ -1,13 +1,19 @@
 package com.ruoyi.system.query;
 
 import com.ruoyi.common.core.domain.BasePage;
+import com.ruoyi.common.core.domain.model.TimeRangeQueryBody;
 import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 @Data
 @ApiModel(value = "操作日志查询query")
-public class SysOperLogQuery extends BasePage {
+public class SysOperLogQuery extends TimeRangeQueryBody {
 
+    @ApiModelProperty(value = "操作模块")
+    private String title;
 
+    @ApiModelProperty(value = "操作人员")
+    private String nickName;
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TCrmSupplierQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TCrmSupplierQuery.java
index de71061..6d08407 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/TCrmSupplierQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TCrmSupplierQuery.java
@@ -22,4 +22,6 @@
     @ApiModelProperty(value = "状态 1=使用中 2=冻结")
     private Integer status;
 
+    @ApiModelProperty(value = "供应商唯一标识ID")
+    private String uniqueIdentifierId;
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TCrmSupplierVerifyQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TCrmSupplierVerifyQuery.java
new file mode 100644
index 0000000..d32a311
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TCrmSupplierVerifyQuery.java
@@ -0,0 +1,24 @@
+package com.ruoyi.system.query;
+
+import com.ruoyi.common.core.domain.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "供应商资质核查查询参数TCrmSupplierVerifyQuery")
+public class TCrmSupplierVerifyQuery extends BasePage {
+
+    @ApiModelProperty(value = "供应商名称")
+    private String supplierName;
+
+    @ApiModelProperty(value = "供应商联系人")
+    private String supplierContact;
+
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+
+    @ApiModelProperty(value = "核查状态 1=未核查 2=已核查")
+    private Integer status;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TSysNoticeQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TSysNoticeQuery.java
new file mode 100644
index 0000000..8f585cf
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TSysNoticeQuery.java
@@ -0,0 +1,21 @@
+package com.ruoyi.system.query;
+
+import com.ruoyi.common.core.domain.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "公告管理查询参数TSysNoticeQuery")
+public class TSysNoticeQuery extends BasePage {
+
+    @ApiModelProperty(value = "公告标题")
+    private String noticeTitle;
+
+    @ApiModelProperty(value = "显示状态 1=未开始 2=展示中 3=已结束")
+    private Integer showStatus;
+
+    @ApiModelProperty(value = "启用状态 1=启用 2=禁用")
+    private Integer status;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TCrmSupplierVerifyService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TCrmSupplierVerifyService.java
new file mode 100644
index 0000000..f671a86
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TCrmSupplierVerifyService.java
@@ -0,0 +1,25 @@
+package com.ruoyi.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.model.TCrmSupplierVerify;
+import com.ruoyi.system.query.TCrmSupplierVerifyQuery;
+import com.ruoyi.system.vo.TCrmSupplierVerifyVO;
+
+/**
+ * <p>
+ * 供应商资质核查 服务类
+ * </p>
+ *
+ * @author xiaochen
+ * @since 2025-11-03
+ */
+public interface TCrmSupplierVerifyService extends IService<TCrmSupplierVerify> {
+
+    /**
+     * 获取供应商资质核查分页列表
+     * @param query
+     * @return
+     */
+    PageInfo<TCrmSupplierVerifyVO> pageList(TCrmSupplierVerifyQuery query);
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TSysNoticeService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TSysNoticeService.java
new file mode 100644
index 0000000..6ba9743
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TSysNoticeService.java
@@ -0,0 +1,32 @@
+package com.ruoyi.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.model.TSysNotice;
+import com.ruoyi.system.query.TSysNoticeQuery;
+import com.ruoyi.system.vo.TSysNoticeVO;
+
+/**
+ * <p>
+ * 公告管理 服务类
+ * </p>
+ *
+ * @author xiaochen
+ * @since 2025-11-03
+ */
+public interface TSysNoticeService extends IService<TSysNotice> {
+
+    /**
+     * 判断是否存在
+     * @param dto
+     * @return
+     */
+    boolean isExit(TSysNotice dto);
+
+    /**
+     * 获取公告管理分页列表
+     * @param query
+     * @return
+     */
+    PageInfo<TSysNoticeVO> pageList(TSysNoticeQuery query);
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmSupplierVerifyServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmSupplierVerifyServiceImpl.java
new file mode 100644
index 0000000..2b5b758
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmSupplierVerifyServiceImpl.java
@@ -0,0 +1,33 @@
+package com.ruoyi.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.mapper.TCrmSupplierVerifyMapper;
+import com.ruoyi.system.model.TCrmSupplierVerify;
+import com.ruoyi.system.query.TCrmSupplierVerifyQuery;
+import com.ruoyi.system.service.TCrmSupplierVerifyService;
+import com.ruoyi.system.vo.TCrmDeviceVO;
+import com.ruoyi.system.vo.TCrmSupplierVerifyVO;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 供应商资质核查 服务实现类
+ * </p>
+ *
+ * @author xiaochen
+ * @since 2025-11-03
+ */
+@Service
+public class TCrmSupplierVerifyServiceImpl extends ServiceImpl<TCrmSupplierVerifyMapper, TCrmSupplierVerify> implements TCrmSupplierVerifyService {
+
+    @Override
+    public PageInfo<TCrmSupplierVerifyVO> pageList(TCrmSupplierVerifyQuery query) {
+        PageInfo<TCrmSupplierVerifyVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+        List<TCrmSupplierVerifyVO> list = this.baseMapper.pageList(query,pageInfo);
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysNoticeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysNoticeServiceImpl.java
new file mode 100644
index 0000000..fdf2318
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysNoticeServiceImpl.java
@@ -0,0 +1,47 @@
+package com.ruoyi.system.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.core.domain.entity.SysRole;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.mapper.TSysNoticeMapper;
+import com.ruoyi.system.model.TSysNotice;
+import com.ruoyi.system.model.TSysNotice;
+import com.ruoyi.system.query.TSysNoticeQuery;
+import com.ruoyi.system.service.TSysNoticeService;
+import com.ruoyi.system.vo.TSysNoticeVO;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 公告管理 服务实现类
+ * </p>
+ *
+ * @author xiaochen
+ * @since 2025-11-03
+ */
+@Service
+public class TSysNoticeServiceImpl extends ServiceImpl<TSysNoticeMapper, TSysNotice> implements TSysNoticeService {
+
+    @Override
+    public boolean isExit(TSysNotice dto) {
+        if(StringUtils.isNotEmpty(dto.getId())){
+            // 修改
+            return this.count(Wrappers.lambdaQuery(TSysNotice.class).ne(TSysNotice::getId, dto.getId()).eq(TSysNotice::getNoticeTitle, dto.getNoticeTitle())) > 0;
+        }else {
+            // 新增
+            return this.count(Wrappers.lambdaQuery(TSysNotice.class).eq(TSysNotice::getNoticeTitle, dto.getNoticeTitle())) > 0;
+        }
+    }
+
+    @Override
+    public PageInfo<TSysNoticeVO> pageList(TSysNoticeQuery query) {
+        PageInfo<TSysNoticeVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+        List<TSysNoticeVO> list = this.baseMapper.pageList(query,pageInfo);
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TCrmSupplierVerifyVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TCrmSupplierVerifyVO.java
new file mode 100644
index 0000000..690949e
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TCrmSupplierVerifyVO.java
@@ -0,0 +1,28 @@
+package com.ruoyi.system.vo;
+
+import com.ruoyi.system.model.TCrmSupplier;
+import com.ruoyi.system.model.TCrmSupplierVerify;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value="供应商资质核查TCrmSupplierVerifyVO")
+public class TCrmSupplierVerifyVO extends TCrmSupplierVerify {
+
+    @ApiModelProperty(value = "供应商信息 详情使用")
+    private TCrmSupplier crmSupplier;
+
+    @ApiModelProperty(value = "供应商名称")
+    private String supplierName;
+
+    @ApiModelProperty(value = "供应商联系人")
+    private String supplierContact;
+
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+
+    @ApiModelProperty(value = "备注")
+    private String remarks;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TSysNoticeVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TSysNoticeVO.java
new file mode 100644
index 0000000..c572a77
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TSysNoticeVO.java
@@ -0,0 +1,15 @@
+package com.ruoyi.system.vo;
+
+import com.ruoyi.system.model.TSysNotice;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "公告管理视图对象TSysNoticeVO")
+public class TSysNoticeVO extends TSysNotice {
+
+    @ApiModelProperty(value = "显示状态 1=未开始 2=展示中 3=已结束")
+    private String showStatus;
+
+}
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml
index e343224..e2becdc 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml
@@ -92,6 +92,18 @@
 			   sol.oper_time AS operTime, sol.cost_time AS costTime,sol.companyName AS companyName,sol.roleName AS roleName,sol.phonenumber AS phonenumber,
 			   sol.userId AS userId,sol.nickName AS nickName
 		from sys_oper_log sol
+		<where>
+			<if test="query.nickName != null and query.nickName != ''">
+				AND sol.nickName like concat('%', #{query.nickName}, '%')
+			</if>
+			<if test="query.title != null and query.title != ''">
+				AND sol.title like concat('%', #{query.title}, '%')
+			</if>
+			<if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
+				AND sol.oper_time &gt;= #{query.startTime}
+				AND sol.oper_time &lt;= #{query.endTime}
+			</if>
+		</where>
 		ORDER BY sol.oper_time DESC
 	</select>
 
diff --git a/ruoyi-system/src/main/resources/mapper/system/TCrmSupplierMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TCrmSupplierMapper.xml
index 7b9938b..b679487 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TCrmSupplierMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TCrmSupplierMapper.xml
@@ -15,6 +15,17 @@
         <result column="qualification_picture" property="qualificationPicture" />
         <result column="status" property="status" />
         <result column="warehouse_id" property="warehouseId" />
+        <result column="freezing_reason" property="freezingReason" />
+        <result column="credit_code" property="creditCode" />
+        <result column="business_address" property="businessAddress" />
+        <result column="business_model" property="businessModel" />
+        <result column="business_nature" property="businessNature" />
+        <result column="contact_person_address" property="contactPersonAddress" />
+        <result column="business_category" property="businessCategory" />
+        <result column="medical_devices" property="medicalDevices" />
+        <result column="front_side" property="frontSide" />
+        <result column="reverse_side" property="reverseSide" />
+        <result column="unique_identifier_id" property="uniqueIdentifierId" />
         <result column="create_time" property="createTime" />
         <result column="update_time" property="updateTime" />
         <result column="create_by" property="createBy" />
@@ -25,7 +36,10 @@
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
         id, user_id, supplier_name, is_add_points_goods, supplier_contact, phone, account, remarks,
-          qualification_picture, status, warehouse_id,create_time, update_time, create_by, update_by, disabled,recv_merchant_no,term_no
+          qualification_picture, status, warehouse_id,freezing_reason,credit_code, business_address,
+          business_model, business_nature, contact_person_address, business_category, medical_devices,
+          front_side, reverse_side, unique_identifier_id,
+          create_time, update_time, create_by, update_by, disabled,recv_merchant_no,term_no
     </sql>
     <select id="pageList" resultType="com.ruoyi.system.vo.TCrmSupplierVO">
         select
@@ -40,6 +54,9 @@
             </if>
             <if test="query.phone != null and query.phone != ''">
                 and phone like concat('%',#{query.phone},'%')
+            </if>
+            <if test="query.uniqueIdentifierId != null and query.uniqueIdentifierId != ''">
+                and unique_identifier_id like concat('%',#{query.uniqueIdentifierId},'%')
             </if>
             <if test="query.status != null">
                 and status = #{query.status}
@@ -62,6 +79,9 @@
             <if test="query.phone != null and query.phone != ''">
                 and phone like concat('%',#{query.phone},'%')
             </if>
+            <if test="query.uniqueIdentifierId != null and query.uniqueIdentifierId != ''">
+                and unique_identifier_id like concat('%',#{query.uniqueIdentifierId},'%')
+            </if>
             <if test="query.status != null">
                 and status = #{query.status}
             </if>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TCrmSupplierVerifyMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TCrmSupplierVerifyMapper.xml
new file mode 100644
index 0000000..33159be
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/system/TCrmSupplierVerifyMapper.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.TCrmSupplierVerifyMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ruoyi.system.model.TCrmSupplierVerify">
+        <id column="id" property="id" />
+        <result column="supplier_id" property="supplierId" />
+        <result column="status" property="status" />
+        <result column="verify_remark" property="verifyRemark" />
+        <result column="generate_time" property="generateTime" />
+        <result column="verify_time" property="verifyTime" />
+        <result column="operation_name" property="operationName" />
+        <result column="operation_time" property="operationTime" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, supplier_id, status, verify_remark, generate_time, verify_time, operation_name, operation_time
+    </sql>
+    <select id="pageList" resultType="com.ruoyi.system.vo.TCrmSupplierVerifyVO">
+        SELECT tcsv.id, tcsv.supplier_id, tcsv.status, tcsv.verify_remark, tcsv.generate_time, tcsv.verify_time, tcsv.operation_name, tcsv.operation_time,
+               tcs.supplier_name, tcs.supplier_contact, tcs.phone, tcs.remarks
+        FROM t_crm_supplier_verify tcsv
+        LEFT JOIN t_crm_supplier tcs ON tcsv.supplier_id = tcs.id
+        <where>
+            <if test="query.supplierName != null and query.supplierName != ''">
+                AND tcs.supplier_name LIKE concat('%',#{query.supplierName},'%')
+            </if>
+            <if test="query.supplierContact != null and query.supplierContact != ''">
+                AND tcs.supplier_contact LIKE concat('%',#{query.supplierContact},'%')
+            </if>
+            <if test="query.phone != null and query.phone != ''">
+                AND tcs.phone LIKE concat('%',#{query.phone},'%')
+            </if>
+            <if test="query.status != null">
+                AND tcsv.status = #{query.status}
+            </if>
+        </where>
+        ORDER BY tcsv.generate_time DESC
+    </select>
+
+</mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TSysNoticeMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TSysNoticeMapper.xml
new file mode 100644
index 0000000..ac30825
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/system/TSysNoticeMapper.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.TSysNoticeMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ruoyi.system.model.TSysNotice">
+        <id column="id" property="id" />
+        <result column="notice_title" property="noticeTitle" />
+        <result column="display_location" property="displayLocation" />
+        <result column="notice_content" property="noticeContent" />
+        <result column="start_time" property="startTime" />
+        <result column="end_time" property="endTime" />
+        <result column="status" property="status" />
+        <result column="create_time" property="createTime" />
+        <result column="update_time" property="updateTime" />
+        <result column="create_by" property="createBy" />
+        <result column="update_by" property="updateBy" />
+        <result column="disabled" property="disabled" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, notice_title, display_location, notice_content, start_time, end_time, status, create_time, update_time, create_by, update_by, disabled
+    </sql>
+    <select id="pageList" resultType="com.ruoyi.system.vo.TSysNoticeVO">
+        SELECT
+        <include refid="Base_Column_List" />
+            FROM t_sys_notice
+        <where>
+            <if test="query.noticeTitle != null and query.noticeTitle != ''">
+                AND notice_title LIKE concat('%',#{query.noticeTitle},'%')
+            </if>
+            <if test="query.showStatus != null and query.showStatus == 1">
+                AND date_format(start_time,'%y%m%d %H%i%s') &gt; date_format(NOW(),'%y%m%d %H%i%s')
+            </if>
+            <if test="query.showStatus != null and query.showStatus == 2">
+                AND date_format(start_time,'%y%m%d %H%i%s') &lt;= date_format(NOW(),'%y%m%d %H%i%s')
+                AND date_format(end_time,'%y%m%d %H%i%s') &gt;= date_format(NOW(),'%y%m%d %H%i%s')
+            </if>
+            <if test="query.showStatus != null and query.showStatus == 3">
+                AND date_format(end_time,'%y%m%d %H%i%s') &lt; date_format(NOW(),'%y%m%d %H%i%s')
+            </if>
+            <if test="query.status != null">
+                AND status = #{query.status}
+            </if>
+            AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+        </where>
+        ORDER BY create_time DESC
+    </select>
+
+</mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TSysOtherConfigMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TSysOtherConfigMapper.xml
index 85a2535..9537011 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TSysOtherConfigMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TSysOtherConfigMapper.xml
@@ -11,6 +11,8 @@
         <result column="msg_count" property="msgCount" />
         <result column="ai_price" property="aiPrice" />
         <result column="delivery_time" property="deliveryTime" />
+        <result column="verify_value" property="verifyValue" />
+        <result column="verify_unit" property="verifyUnit" />
         <result column="create_time" property="createTime" />
         <result column="update_time" property="updateTime" />
         <result column="create_by" property="createBy" />
@@ -21,7 +23,8 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, procurement_conditions, points_expiration, expire_unit, msg_count, ai_price, delivery_time, create_time, update_time, create_by, update_by, disabled, create_id
+        id, procurement_conditions, points_expiration, expire_unit, msg_count, ai_price, delivery_time,
+          verify_value, verify_unit,create_time, update_time, create_by, update_by, disabled, create_id
     </sql>
 
 </mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TSysQualificationsMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TSysQualificationsMapper.xml
index 4720341..6d98a8d 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TSysQualificationsMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TSysQualificationsMapper.xml
@@ -7,6 +7,8 @@
         <id column="id" property="id" />
         <result column="qualifications_name" property="qualificationsName" />
         <result column="qualifications_content" property="qualificationsContent" />
+        <result column="qualifications_type" property="qualificationsType" />
+        <result column="record_number" property="recordNumber" />
         <result column="status" property="status" />
         <result column="sort_by" property="sortBy" />
         <result column="create_time" property="createTime" />
@@ -18,7 +20,7 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, qualifications_name, qualifications_content, status, sort_by, create_time, update_time, create_by, update_by, disabled
+        id, qualifications_name, qualifications_content,qualifications_type, record_number, status, sort_by, create_time, update_time, create_by, update_by, disabled
     </sql>
     <select id="pageList" resultType="com.ruoyi.system.model.TSysQualifications">
         select

--
Gitblit v1.7.1