Prechádzať zdrojové kódy

新增归还和过期提醒

车车 11 mesiacov pred
rodič
commit
6cc0508353

+ 56 - 0
ktg-iscs/src/main/java/com/ktg/iscs/controller/IsMaterialsReminderController.java

@@ -0,0 +1,56 @@
+package com.ktg.iscs.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ktg.common.annotation.Log;
+import com.ktg.common.core.controller.BaseController;
+import com.ktg.common.enums.BusinessType;
+import com.ktg.common.pojo.CommonResult;
+import com.ktg.iscs.domain.IsMaterialsReminder;
+import com.ktg.iscs.domain.dto.materialsReminder.MaterialsReminderPageDTO;
+import com.ktg.iscs.domain.vo.materialsReminder.MaterialsReminderVO;
+import com.ktg.iscs.service.IIsMaterialsReminderService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Parameters;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 物资借出提醒Controller
+ *
+ * @author cgj
+ * @date 2024-11-19
+ */
+@Api(tags = "物资借出提醒")
+@RestController
+@RequestMapping("/iscs/reminder")
+public class IsMaterialsReminderController extends BaseController
+{
+    @Autowired
+    private IIsMaterialsReminderService isMaterialsReminderService;
+
+    @ApiOperation("查询物资借出提醒-分页")
+    @Parameters({
+            @Parameter(name = "page", description = "Page"),
+            @Parameter(name = "isMaterialsReminder", description = "实体参数")
+    })
+    @PreAuthorize("@ss.hasPermi('iscs:reminder:list')")
+    @GetMapping("/getIsMaterialsReminderPage")
+    public CommonResult<Page<MaterialsReminderVO>> getIsMaterialsReminderPage(Page<IsMaterialsReminder> page, MaterialsReminderPageDTO dto)
+    {
+        Page<MaterialsReminderVO> result = isMaterialsReminderService.getIsMaterialsReminderPage(page, dto);
+        return CommonResult.success(result);
+    }
+
+    @ApiOperation("修改物资借出提醒")
+    @PreAuthorize("@ss.hasPermi('iscs:reminder:edit')")
+    @Log(title = "物资借出提醒", businessType = BusinessType.UPDATE)
+    @PostMapping("/updateIsMaterialsReminder")
+    public CommonResult<Boolean> updateIsMaterialsReminder(@RequestBody @Parameter(name = "isMaterialsReminder", description = "修改数据类,放到body") IsMaterialsReminder isMaterialsReminder)
+    {
+        return CommonResult.success(isMaterialsReminderService.updateIsMaterialsReminder(isMaterialsReminder) == 1);
+    }
+
+}

+ 49 - 0
ktg-iscs/src/main/java/com/ktg/iscs/domain/dto/materialsReminder/MaterialsReminderPageDTO.java

@@ -0,0 +1,49 @@
+package com.ktg.iscs.domain.dto.materialsReminder;
+
+import com.ktg.common.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 物资借出对象 is_materials_loan
+ *
+ * @author cgj
+ * @date 2024-11-08
+ */
+@Data
+public class MaterialsReminderPageDTO
+{
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "提醒类型(0-提醒 1-警告)")
+    private Integer reminderType;
+
+    @ApiModelProperty(value = "是否已读(0-未读 1-已读)")
+    private Integer readFlag;
+
+    @ApiModelProperty(value = "物资编号")
+    private String materialsCode;
+
+    @ApiModelProperty(value = "物资名称")
+    private String materialsName;
+
+    @ApiModelProperty(value = "领取人Name")
+    private String loanUserName;
+
+    @ApiModelProperty(value = "领取柜ID")
+    private Long loanFromId;
+
+    @ApiModelProperty(value = "领取柜Name")
+    private String loanFromName;
+
+    @ApiModelProperty(value = "开始领取时间")
+    private String startTime;
+
+    @ApiModelProperty(value = "结束领取时间")
+    private String endTime;
+
+    @ApiModelProperty(value = "归还柜ID")
+    @Excel(name = "归还柜ID")
+    private Long restitutionToId;
+
+}

+ 4 - 0
ktg-iscs/src/main/java/com/ktg/iscs/domain/vo/materialsLoan/MaterialsLoanPageVO.java

@@ -43,6 +43,10 @@ public class MaterialsLoanPageVO extends BaseBean
     @Excel(name = "领取人ID")
     @Excel(name = "领取人ID")
     private Long loanUserId;
     private Long loanUserId;
 
 
+    @ApiModelProperty(value = "领取人NAME")
+    @Excel(name = "领取人NAME")
+    private String loanUserName;
+
     @ApiModelProperty(value = "领取柜ID")
     @ApiModelProperty(value = "领取柜ID")
     @Excel(name = "领取柜ID")
     @Excel(name = "领取柜ID")
     private Long loanFromId;
     private Long loanFromId;

+ 100 - 0
ktg-iscs/src/main/java/com/ktg/iscs/domain/vo/materialsReminder/MaterialsReminderVO.java

@@ -0,0 +1,100 @@
+package com.ktg.iscs.domain.vo.materialsReminder;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ktg.common.annotation.Excel;
+import com.ktg.common.core.domain.model.BaseBean;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 物资借出对象 is_materials_loan
+ *
+ * @author cgj
+ * @date 2024-11-08
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class MaterialsReminderVO extends BaseBean
+{
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "记录ID")
+    @TableId(type = IdType.AUTO)
+    private Long recordId;
+
+    @ApiModelProperty(value = "出借记录ID")
+    private Long materialsLoanId;
+
+    @ApiModelProperty(value = "提醒类型(0-提醒 1-警告)")
+    private Integer reminderType;
+
+    @ApiModelProperty(value = "是否已读(0-未读 1-已读)")
+    private Integer readFlag;
+
+    @ApiModelProperty(value = "物资ID")
+    private Long materialsId;
+
+    @ApiModelProperty(value = "物资编号")
+    private String materialsCode;
+
+    @ApiModelProperty(value = "物资名称")
+    private String materialsName;
+
+    @ApiModelProperty(value = "领取人ID")
+    private Long loanUserId;
+
+    @ApiModelProperty(value = "领取人Name")
+    private String loanUserName;
+
+    @ApiModelProperty(value = "领取柜ID")
+    private Long loanFromId;
+
+    @ApiModelProperty(value = "领取柜Name")
+    private String loanFromName;
+
+    @ApiModelProperty(value = "领取时间")
+    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd")
+    @Excel(name = "领取时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date loanTime;
+
+    @ApiModelProperty(value = "提醒时间")
+    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd")
+    @Excel(name = "提醒时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date reminderTime;
+
+    @ApiModelProperty(value = "归还人ID")
+    @Excel(name = "归还人ID")
+    private Long restitutionUserId;
+
+    @ApiModelProperty(value = "归还柜ID")
+    @Excel(name = "归还柜ID")
+    private Long restitutionToId;
+
+    @ApiModelProperty(value = "理应归还时间")
+    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd")
+    @Excel(name = "理应归还时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date restitutionTime;
+
+    @ApiModelProperty(value = "实际归还时间")
+    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd")
+    @Excel(name = "实际归还时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date actualRestitutionTime;
+
+    @ApiModelProperty(value = "超时报警")
+    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd")
+    @Excel(name = "超时报警", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date timeoutAlarm;
+
+    @ApiModelProperty(value = "是否需要归还")
+    @Excel(name = "是否需要归还")
+    private Integer restitutionRequired;
+
+    @ApiModelProperty(value = "删除标志(0代表存在 2代表删除)")
+    private String delFlag;
+
+}

+ 9 - 2
ktg-iscs/src/main/java/com/ktg/iscs/mapper/IsMaterialsReminderMapper.java

@@ -1,9 +1,14 @@
 package com.ktg.iscs.mapper;
 package com.ktg.iscs.mapper;
 
 
-import java.util.List;
-import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ktg.common.mapper.BaseMapperX;
 import com.ktg.common.mapper.BaseMapperX;
 import com.ktg.iscs.domain.IsMaterialsReminder;
 import com.ktg.iscs.domain.IsMaterialsReminder;
+import com.ktg.iscs.domain.dto.materialsReminder.MaterialsReminderPageDTO;
+import com.ktg.iscs.domain.vo.materialsReminder.MaterialsReminderVO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 
 /**
 /**
  * 物资借出提醒Mapper接口
  * 物资借出提醒Mapper接口
@@ -61,4 +66,6 @@ public interface IsMaterialsReminderMapper extends BaseMapperX<IsMaterialsRemind
      * @return 结果
      * @return 结果
      */
      */
     int deleteIsMaterialsReminderByRecordIds(Long[] recordIds);
     int deleteIsMaterialsReminderByRecordIds(Long[] recordIds);
+
+    Page<MaterialsReminderVO> getIsMaterialsReminderPage(Page<IsMaterialsReminder> page, @Param(value = "dto") MaterialsReminderPageDTO dto);
 }
 }

+ 8 - 1
ktg-iscs/src/main/java/com/ktg/iscs/service/IIsMaterialsReminderService.java

@@ -1,8 +1,12 @@
 package com.ktg.iscs.service;
 package com.ktg.iscs.service;
 
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
-import java.util.List;
 import com.ktg.iscs.domain.IsMaterialsReminder;
 import com.ktg.iscs.domain.IsMaterialsReminder;
+import com.ktg.iscs.domain.dto.materialsReminder.MaterialsReminderPageDTO;
+import com.ktg.iscs.domain.vo.materialsReminder.MaterialsReminderVO;
+
+import java.util.List;
 
 
 /**
 /**
  * 物资借出提醒Service接口
  * 物资借出提醒Service接口
@@ -59,4 +63,7 @@ public interface IIsMaterialsReminderService extends IService<IsMaterialsReminde
      * @return 结果
      * @return 结果
      */
      */
     int deleteIsMaterialsReminderByRecordId(Long recordId);
     int deleteIsMaterialsReminderByRecordId(Long recordId);
+
+
+    Page<MaterialsReminderVO> getIsMaterialsReminderPage(Page<IsMaterialsReminder> page, MaterialsReminderPageDTO dto);
 }
 }

+ 16 - 0
ktg-iscs/src/main/java/com/ktg/iscs/service/impl/IsMaterialsLoanServiceImpl.java

@@ -11,6 +11,7 @@ import com.ktg.common.utils.DateUtils;
 import com.ktg.common.utils.bean.BeanUtils;
 import com.ktg.common.utils.bean.BeanUtils;
 import com.ktg.iscs.domain.IsMaterials;
 import com.ktg.iscs.domain.IsMaterials;
 import com.ktg.iscs.domain.IsMaterialsLoan;
 import com.ktg.iscs.domain.IsMaterialsLoan;
+import com.ktg.iscs.domain.IsMaterialsReminder;
 import com.ktg.iscs.domain.dto.materialsLoan.AddLoanDTO;
 import com.ktg.iscs.domain.dto.materialsLoan.AddLoanDTO;
 import com.ktg.iscs.domain.dto.materialsLoan.MaterialsLoanPageDTO;
 import com.ktg.iscs.domain.dto.materialsLoan.MaterialsLoanPageDTO;
 import com.ktg.iscs.domain.dto.materialsLoan.ReminderPageDTO;
 import com.ktg.iscs.domain.dto.materialsLoan.ReminderPageDTO;
@@ -20,6 +21,7 @@ import com.ktg.iscs.domain.vo.materialsLoan.ReminderPageVO;
 import com.ktg.iscs.domain.vo.materialsType.MaterialsTypePageVO;
 import com.ktg.iscs.domain.vo.materialsType.MaterialsTypePageVO;
 import com.ktg.iscs.mapper.IsMaterialsLoanMapper;
 import com.ktg.iscs.mapper.IsMaterialsLoanMapper;
 import com.ktg.iscs.service.IIsMaterialsLoanService;
 import com.ktg.iscs.service.IIsMaterialsLoanService;
+import com.ktg.iscs.service.IIsMaterialsReminderService;
 import com.ktg.iscs.service.IIsMaterialsService;
 import com.ktg.iscs.service.IIsMaterialsService;
 import com.ktg.iscs.service.IIsMaterialsTypeService;
 import com.ktg.iscs.service.IIsMaterialsTypeService;
 import com.ktg.system.service.NotifySendService;
 import com.ktg.system.service.NotifySendService;
@@ -53,6 +55,8 @@ public class IsMaterialsLoanServiceImpl extends ServiceImpl<IsMaterialsLoanMappe
     private IIsMaterialsTypeService isMaterialsTypeService;
     private IIsMaterialsTypeService isMaterialsTypeService;
     @Resource
     @Resource
     private NotifySendService notifySendService;
     private NotifySendService notifySendService;
+    @Resource
+    private IIsMaterialsReminderService iIsMaterialsReminderService;
 
 
     @Autowired
     @Autowired
     private RedisCache redisCache;
     private RedisCache redisCache;
@@ -119,6 +123,12 @@ public class IsMaterialsLoanServiceImpl extends ServiceImpl<IsMaterialsLoanMappe
                     templateParams.put("归还时间", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(materialsLoan.getRestitutionTime()));
                     templateParams.put("归还时间", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(materialsLoan.getRestitutionTime()));
                     notifySendService.sendSingleNotifyToMember(materialsLoan.getLoanUserId(),
                     notifySendService.sendSingleNotifyToMember(materialsLoan.getLoanUserId(),
                             "REMINDER_RETURN", templateParams);
                             "REMINDER_RETURN", templateParams);
+                    // 存储到is_materials_reminder
+                    IsMaterialsReminder isMaterialsReminder = new IsMaterialsReminder();
+                    isMaterialsReminder.setMaterialsLoanId(materialsLoanId);
+                    isMaterialsReminder.setReminderType(0);
+                    isMaterialsReminder.setReadFlag(0);
+                    iIsMaterialsReminderService.save(isMaterialsReminder);
                 }
                 }
             }
             }
         }
         }
@@ -155,6 +165,12 @@ public class IsMaterialsLoanServiceImpl extends ServiceImpl<IsMaterialsLoanMappe
                     templateParams.put("归还时间", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(materialsLoan.getRestitutionTime()));
                     templateParams.put("归还时间", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(materialsLoan.getRestitutionTime()));
                     notifySendService.sendSingleNotifyToMember(materialsLoan.getLoanUserId(),
                     notifySendService.sendSingleNotifyToMember(materialsLoan.getLoanUserId(),
                             "ALARM_RETURN", templateParams);
                             "ALARM_RETURN", templateParams);
+                    // 存储到is_materials_reminder
+                    IsMaterialsReminder isMaterialsReminder = new IsMaterialsReminder();
+                    isMaterialsReminder.setMaterialsLoanId(materialsLoanId);
+                    isMaterialsReminder.setReminderType(1);
+                    isMaterialsReminder.setReadFlag(0);
+                    iIsMaterialsReminderService.save(isMaterialsReminder);
                 }
                 }
             }
             }
         }
         }

+ 14 - 5
ktg-iscs/src/main/java/com/ktg/iscs/service/impl/IsMaterialsReminderServiceImpl.java

@@ -1,15 +1,19 @@
 package com.ktg.iscs.service.impl;
 package com.ktg.iscs.service.impl;
 
 
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import java.util.List;
 import cn.hutool.core.lang.Assert;
 import cn.hutool.core.lang.Assert;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ktg.common.core.text.Convert;
 import com.ktg.common.core.text.Convert;
 import com.ktg.common.utils.DateUtils;
 import com.ktg.common.utils.DateUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import com.ktg.iscs.mapper.IsMaterialsReminderMapper;
 import com.ktg.iscs.domain.IsMaterialsReminder;
 import com.ktg.iscs.domain.IsMaterialsReminder;
+import com.ktg.iscs.domain.dto.materialsReminder.MaterialsReminderPageDTO;
+import com.ktg.iscs.domain.vo.materialsReminder.MaterialsReminderVO;
+import com.ktg.iscs.mapper.IsMaterialsReminderMapper;
 import com.ktg.iscs.service.IIsMaterialsReminderService;
 import com.ktg.iscs.service.IIsMaterialsReminderService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
 
 
 /**
 /**
  * 物资借出提醒Service业务层处理
  * 物资借出提醒Service业务层处理
@@ -98,4 +102,9 @@ public class IsMaterialsReminderServiceImpl extends ServiceImpl<IsMaterialsRemin
     {
     {
         return isMaterialsReminderMapper.deleteIsMaterialsReminderByRecordId(recordId);
         return isMaterialsReminderMapper.deleteIsMaterialsReminderByRecordId(recordId);
     }
     }
+
+    @Override
+    public Page<MaterialsReminderVO> getIsMaterialsReminderPage(Page<IsMaterialsReminder> page, MaterialsReminderPageDTO dto) {
+        return isMaterialsReminderMapper.getIsMaterialsReminderPage(page, dto);
+    }
 }
 }

+ 58 - 6
ktg-iscs/src/main/resources/mapper/IsMaterialsReminderMapper.xml

@@ -3,7 +3,7 @@
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ktg.iscs.mapper.IsMaterialsReminderMapper">
 <mapper namespace="com.ktg.iscs.mapper.IsMaterialsReminderMapper">
-    
+
     <resultMap type="IsMaterialsReminder" id="IsMaterialsReminderResult">
     <resultMap type="IsMaterialsReminder" id="IsMaterialsReminderResult">
         <result property="recordId"    column="record_id"    />
         <result property="recordId"    column="record_id"    />
         <result property="materialsLoanId"    column="materials_loan_id"    />
         <result property="materialsLoanId"    column="materials_loan_id"    />
@@ -23,18 +23,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
 
     <select id="selectIsMaterialsReminderList" parameterType="IsMaterialsReminder" resultMap="IsMaterialsReminderResult">
     <select id="selectIsMaterialsReminderList" parameterType="IsMaterialsReminder" resultMap="IsMaterialsReminderResult">
         <include refid="selectIsMaterialsReminderVo"/>
         <include refid="selectIsMaterialsReminderVo"/>
-        <where>  
+        <where>
             <if test="materialsLoanId != null "> and materials_loan_id = #{materialsLoanId}</if>
             <if test="materialsLoanId != null "> and materials_loan_id = #{materialsLoanId}</if>
             <if test="reminderType != null "> and reminder_type = #{reminderType}</if>
             <if test="reminderType != null "> and reminder_type = #{reminderType}</if>
             <if test="readFlag != null "> and read_flag = #{readFlag}</if>
             <if test="readFlag != null "> and read_flag = #{readFlag}</if>
         </where>
         </where>
     </select>
     </select>
-    
+
     <select id="selectIsMaterialsReminderByRecordId" parameterType="Long" resultMap="IsMaterialsReminderResult">
     <select id="selectIsMaterialsReminderByRecordId" parameterType="Long" resultMap="IsMaterialsReminderResult">
         <include refid="selectIsMaterialsReminderVo"/>
         <include refid="selectIsMaterialsReminderVo"/>
         where record_id = #{recordId}
         where record_id = #{recordId}
     </select>
     </select>
-        
+
     <insert id="insertIsMaterialsReminder" parameterType="IsMaterialsReminder" useGeneratedKeys="true" keyProperty="recordId">
     <insert id="insertIsMaterialsReminder" parameterType="IsMaterialsReminder" useGeneratedKeys="true" keyProperty="recordId">
         insert into is_materials_reminder
         insert into is_materials_reminder
         <trim prefix="(" suffix=")" suffixOverrides=",">
         <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -82,9 +82,61 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </delete>
     </delete>
 
 
     <delete id="deleteIsMaterialsReminderByRecordIds" parameterType="String">
     <delete id="deleteIsMaterialsReminderByRecordIds" parameterType="String">
-        delete from is_materials_reminder where record_id in 
+        delete from is_materials_reminder where record_id in
         <foreach item="recordId" collection="array" open="(" separator="," close=")">
         <foreach item="recordId" collection="array" open="(" separator="," close=")">
             #{recordId}
             #{recordId}
         </foreach>
         </foreach>
     </delete>
     </delete>
-</mapper>
+
+    <select id="getIsMaterialsReminderPage"
+            resultType="com.ktg.iscs.domain.vo.materialsReminder.MaterialsReminderVO">
+        SELECT
+        r.*,
+        l.*,
+        m.materials_code,
+        m.materials_name,
+        c1.cabinet_name as loan_from_name,
+        c2.cabinet_name as restitution_to_name,
+        u.user_name as loan_user_name
+        FROM
+        is_materials_reminder r
+        LEFT JOIN is_materials_loan l ON r.materials_loan_id = l.materials_loan_id
+        LEFT JOIN is_materials m ON m.materials_id = l.materials_id
+        LEFT JOIN is_materials_cabinet c1 ON c1.cabinet_id = l.loan_from_id
+        LEFT JOIN is_materials_cabinet c2 ON c2.cabinet_id = l.restitution_to_id
+        LEFT JOIN sys_user u ON u.user_id = l.loan_user_id
+        <where>
+            r.reminder_type = #{dto.reminderType}
+            <if test="dto.readFlag != null">
+                and r.read_lag = #{dto.readFlag}
+            </if>
+            <if test="dto.materialsCode != null and dto.materialsCode.trim != ''">
+                and m.materials_code like concat('%',#{dto.materialsCode},'%')
+            </if>
+            <if test="dto.materialsName != null and dto.materialsName.trim != ''">
+                and m.materials_name like concat('%',#{dto.materialsName},'%')
+            </if>
+            <if test="dto.loanUserName != null and dto.loanUserName.trim != ''">
+                and u.user_name like concat('%',#{dto.loanUserName},'%')
+            </if>
+            <if test="dto.loanFromId != null">
+                and l.loan_from_id = #{dto.loanFromId}
+            </if>
+            <if test="dto.loanFromName != null and dto.loanFromName.trim != ''">
+                and c1.cabinet_name like concat('%',#{dto.loanFromName},'%')
+            </if>
+            <if test="dto.startTime != null and dto.startTime.trim != ''">
+                and l.loan_time &gt;= #{dto.startTime}
+            </if>
+            <if test="dto.endTime != null and dto.endTime.trim != ''">
+                and l.loan_time &lt;= #{dto.endTime}
+            </if>
+        </where>
+        ORDER BY r.record_id DESC
+
+
+
+
+    </select>
+
+</mapper>