k94314517
2025-04-28 d42442d6ab074d9cfa4e0f0fc63e4bd85f10c5af
代码初始化
已添加6个文件
已修改2个文件
551 ■■■■■ 文件已修改
server/db/business.inout_record.permissions.sql 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/InoutRecordController.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/InoutRecordMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/InoutRecord.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/HiddenDangerDataVO.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/InoutRecordService.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InoutRecordServiceImpl.java 175 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/db/business.inout_record.permissions.sql
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:inoutrecord:create', '新建出入场人次车次每日统计表', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:inoutrecord:delete', '删除出入场人次车次每日统计表', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:inoutrecord:update', '修改出入场人次车次每日统计表', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:inoutrecord:query', '查询出入场人次车次每日统计表', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:inoutrecord:exportExcel', '导出出入场人次车次每日统计表(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/InoutRecordController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,90 @@
package com.doumee.api.business;
import com.doumee.api.BaseController;
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.dao.business.model.InoutRecord;
import com.doumee.service.business.InoutRecordService;
import com.doumee.service.business.third.model.ApiResponse;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2025/04/28 16:19
 */
@Api(tags = "出入场人次车次每日统计表")
@RestController
@RequestMapping("/business/inoutRecord")
public class InoutRecordController extends BaseController {
    @Autowired
    private InoutRecordService inoutRecordService;
    @PreventRepeat
    @ApiOperation("新建")
    @PostMapping("/create")
    @RequiresPermissions("business:inoutrecord:create")
    public ApiResponse create(@RequestBody InoutRecord inoutRecord) {
        return ApiResponse.success(inoutRecordService.create(inoutRecord));
    }
    @ApiOperation("根据ID删除")
    @GetMapping("/delete/{id}")
    @RequiresPermissions("business:inoutrecord:delete")
    public ApiResponse deleteById(@PathVariable Integer id) {
        inoutRecordService.deleteById(id);
        return ApiResponse.success(null);
    }
    @ApiOperation("批量删除")
    @GetMapping("/delete/batch")
    @RequiresPermissions("business:inoutrecord:delete")
    public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
        String [] idArray = ids.split(",");
        List<Integer> idList = new ArrayList<>();
        for (String id : idArray) {
            idList.add(Integer.valueOf(id));
        }
        inoutRecordService.deleteByIdInBatch(idList);
        return ApiResponse.success(null);
    }
    @ApiOperation("根据ID修改")
    @PostMapping("/updateById")
    @RequiresPermissions("business:inoutrecord:update")
    public ApiResponse updateById(@RequestBody InoutRecord inoutRecord) {
        inoutRecordService.updateById(inoutRecord);
        return ApiResponse.success(null);
    }
    @ApiOperation("分页查询")
    @PostMapping("/page")
    @RequiresPermissions("business:inoutrecord:query")
    public ApiResponse<PageData<InoutRecord>> findPage (@RequestBody PageWrap<InoutRecord> pageWrap) {
        return ApiResponse.success(inoutRecordService.findPage(pageWrap));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @RequiresPermissions("business:inoutrecord:exportExcel")
    public void exportExcel (@RequestBody PageWrap<InoutRecord> pageWrap, HttpServletResponse response) {
        ExcelExporter.build(InoutRecord.class).export(inoutRecordService.findPage(pageWrap).getRecords(), "出入场人次车次每日统计表", response);
    }
    @ApiOperation("根据ID查询")
    @GetMapping("/{id}")
    @RequiresPermissions("business:inoutrecord:query")
    public ApiResponse findById(@PathVariable Integer id) {
        return ApiResponse.success(inoutRecordService.findById(id));
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/InoutRecordMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.InoutRecord;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2025/04/28 16:19
 */
public interface InoutRecordMapper extends BaseMapper<InoutRecord> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/InoutRecord.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,114 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
/**
 * å‡ºå…¥åœºäººæ¬¡è½¦æ¬¡æ¯æ—¥ç»Ÿè®¡è¡¨
 * @author æ±Ÿè¹„蹄
 * @date 2025/04/28 16:19
 */
@Data
@ApiModel("出入场人次车次每日统计表")
@TableName("`inout_record`")
public class InoutRecord {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
    @ExcelColumn(name="主键")
    private Integer id;
    @ApiModelProperty(value = "创建人编码", example = "1")
    @ExcelColumn(name="创建人编码")
    private Integer creator;
    @ApiModelProperty(value = "创建时间")
    @ExcelColumn(name="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createDate;
    @ApiModelProperty(value = "更新人编码", example = "1")
    @ExcelColumn(name="更新人编码")
    private Integer editor;
    @ApiModelProperty(value = "更新时间")
    @ExcelColumn(name="更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date editDate;
    @ApiModelProperty(value = "是否删除0否 1是", example = "1")
    @ExcelColumn(name="是否删除0否 1是")
    private Integer isdeleted;
    @ApiModelProperty(value = "备注")
    @ExcelColumn(name="备注")
    private String remark;
    @ApiModelProperty(value = "对象类型 0车辆 1人员", example = "1")
    @ExcelColumn(name="对象类型 0车辆 1人员")
    private Integer type;
    @ApiModelProperty(value = "海康事件编码")
    @ExcelColumn(name="海康事件编码")
    private String hkEventId;
    @ApiModelProperty(value = "海康事件对象编码")
    @ExcelColumn(name="海康事件对象编码")
    private String hkId;
    @ApiModelProperty(value = "关联人员编码(关联member)", example = "1")
    @ExcelColumn(name="关联人员编码(关联member)")
    private Integer memberId;
    @ApiModelProperty(value = "关联人员编码(关联cars)", example = "1")
    @ExcelColumn(name="关联人员编码(关联cars)")
    private Integer carId;
    @ApiModelProperty(value = "关联分类编码(关联category)", example = "1")
    @ExcelColumn(name="关联分类编码(关联category)")
    private Integer categoryId;
    @ApiModelProperty(value = "关联分类名称")
    @ExcelColumn(name="关联分类名称")
    private String categoryName;
    @ApiModelProperty(value = "", example = "1")
    @ExcelColumn(name="")
    private Integer carBizType;
    @ApiModelProperty(value = "用户类型  0访客 1内部人员 2相关方人员 3货运司机", example = "1")
    @ExcelColumn(name="用户类型  0访客 1内部人员 2相关方人员 3货运司机")
    private Integer memberType;
    @ApiModelProperty(value = "人员名称")
    @ExcelColumn(name="人员名称")
    private String memberName;
    @ApiModelProperty(value = "车牌号")
    @ExcelColumn(name="车牌号")
    private String carCode;
    @ApiModelProperty(value = "关联对象类型 0车辆 1人员 2访客申请记录 3访客报备申请记录 4月台作业记录", example = "1")
    @ExcelColumn(name="关联对象类型 0车辆 1人员 2访客申请记录 3访客报备申请记录 4月台作业记录")
    private Integer objType;
    @ApiModelProperty(value = "关联对象编码", example = "1")
    @ExcelColumn(name="关联对象编码")
    private Integer objId;
    @ApiModelProperty(value = "进出类型 0进 1出", example = "1")
    @ExcelColumn(name="进出类型 0进 1出")
    private Integer inOrOut;
    @ApiModelProperty(value = "进出设备名称")
    @ExcelColumn(name="进出设备名称")
    private String deviceName;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/HiddenDangerDataVO.java
@@ -12,9 +12,28 @@
    @ApiModelProperty(value = "总数")
    private Integer total;
    @ApiModelProperty(value = "待处理")
    private Integer waitDeal;
    @ApiModelProperty(value = "已整改")
    private Integer dealFinish;
    @ApiModelProperty(value = "已退回")
    private Integer back;
    @ApiModelProperty(value = "今日新增")
    private Integer todayNew;
    @ApiModelProperty(value = "年度统计 - 12条记录")
    private List<GeneralDataVO> yearList;
    @ApiModelProperty(value = "隐患类型统计")
    private List<GeneralDataVO> cateList ;
    @ApiModelProperty(value = "隐患部门统计")
    private List<GeneralDataVO> departmentList ;
    @ApiModelProperty(value = "隐患部门统计 - æŽ’序")
    private List<GeneralDataVO> departmentSortList ;
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/InoutRecordService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
package com.doumee.service.business;
import com.doumee.dao.business.model.InoutRecord;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
import java.util.List;
/**
 * å‡ºå…¥åœºäººæ¬¡è½¦æ¬¡æ¯æ—¥ç»Ÿè®¡è¡¨Service定义
 * @author æ±Ÿè¹„蹄
 * @date 2025/04/28 16:19
 */
public interface InoutRecordService {
    /**
     * åˆ›å»º
     *
     * @param inoutRecord å®žä½“对象
     * @return Integer
     */
    Integer create(InoutRecord inoutRecord);
    /**
     * ä¸»é”®åˆ é™¤
     *
     * @param id ä¸»é”®
     */
    void deleteById(Integer id);
    /**
     * åˆ é™¤
     *
     * @param inoutRecord å®žä½“对象
     */
    void delete(InoutRecord inoutRecord);
    /**
     * æ‰¹é‡ä¸»é”®åˆ é™¤
     *
     * @param ids ä¸»é”®é›†
     */
    void deleteByIdInBatch(List<Integer> ids);
    /**
     * ä¸»é”®æ›´æ–°
     *
     * @param inoutRecord å®žä½“对象
     */
    void updateById(InoutRecord inoutRecord);
    /**
     * æ‰¹é‡ä¸»é”®æ›´æ–°
     *
     * @param inoutRecords å®žä½“集
     */
    void updateByIdInBatch(List<InoutRecord> inoutRecords);
    /**
     * ä¸»é”®æŸ¥è¯¢
     *
     * @param id ä¸»é”®
     * @return InoutRecord
     */
    InoutRecord findById(Integer id);
    /**
     * æ¡ä»¶æŸ¥è¯¢å•条记录
     *
     * @param inoutRecord å®žä½“对象
     * @return InoutRecord
     */
    InoutRecord findOne(InoutRecord inoutRecord);
    /**
     * æ¡ä»¶æŸ¥è¯¢
     *
     * @param inoutRecord å®žä½“对象
     * @return List<InoutRecord>
     */
    List<InoutRecord> findList(InoutRecord inoutRecord);
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param pageWrap åˆ†é¡µå¯¹è±¡
     * @return PageData<InoutRecord>
     */
    PageData<InoutRecord> findPage(PageWrap<InoutRecord> pageWrap);
    /**
     * æ¡ä»¶ç»Ÿè®¡
     *
     * @param inoutRecord å®žä½“对象
     * @return long
     */
    long count(InoutRecord inoutRecord);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
@@ -793,17 +793,41 @@
    @Override
    public HiddenDangerDataVO hiddenDangerData(HiddenDanger hiddenDanger){
        HiddenDangerDataVO hiddenDangerDataVO = new HiddenDangerDataVO();
        List<HiddenDanger> hiddenDangerAllList = hiddenDangerMapper.selectJoinList(HiddenDanger.class,
        List<HiddenDanger> hiddenDangerYearList = hiddenDangerMapper.selectJoinList(HiddenDanger.class,
                new MPJLambdaWrapper<HiddenDanger>()
                        .selectAll(HiddenDanger.class)
                .selectAs(HiddenDangerParam::getCompanyId, HiddenDanger::getAreaCompanyId)
                .leftJoin(HiddenDangerParam.class,HiddenDangerParam::getId,HiddenDanger::getAreaId) //隐患区域
                .eq(HiddenDanger::getIsdeleted,Constants.ZERO)
                .eq(Objects.nonNull(hiddenDanger.getStatus()),HiddenDanger::getStatus,hiddenDanger.getStatus())
                        .apply(" ( DATE_FORMAT(CREATE_DATE, '%Y') = DATE_FORMAT(now(), '%Y') ) ")
                .ge(Objects.nonNull(hiddenDanger.getQueryStartTime()), HiddenDanger::getCreateDate,hiddenDanger.getQueryStartTime())
                .le(Objects.nonNull(hiddenDanger.getQueryEndTime()),HiddenDanger::getCreateDate,hiddenDanger.getQueryEndTime())
        );
        List<GeneralDataVO> yearDataList = new ArrayList<>();
        if(CollectionUtils.isEmpty(hiddenDangerYearList)){
            return hiddenDangerDataVO;
        }
        for (int i = 1; i <=12 ; i++) {
            GeneralDataVO generalDataVO = new GeneralDataVO();
            generalDataVO.setName(Integer.toString(i));
            generalDataVO.setTotal(hiddenDangerYearList.stream().filter(j->Constants.equalsInteger(Integer.valueOf(generalDataVO.getName()),Integer.valueOf(DateUtil.formatDate(j.getCreateDate(),"MM")))).collect(Collectors.toList()).size());
            yearDataList.add(generalDataVO);
        }
        hiddenDangerDataVO.setYearList(yearDataList);
        List<HiddenDanger> hiddenDangerAllList = hiddenDangerYearList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM-dd").equals(DateUtil.formatDate(new Date(),"yyyy-MM-dd"))).collect(Collectors.toList());
        if(CollectionUtils.isEmpty(hiddenDangerAllList)){
            return hiddenDangerDataVO;
        }
        hiddenDangerDataVO.setTotal(hiddenDangerAllList.size());
        hiddenDangerDataVO.setWaitDeal(hiddenDangerAllList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ZERO)).collect(Collectors.toList()).size());
        hiddenDangerDataVO.setBack(hiddenDangerAllList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.TWO)).collect(Collectors.toList()).size());
        hiddenDangerDataVO.setDealFinish(hiddenDangerAllList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ONE)).collect(Collectors.toList()).size());
        hiddenDangerDataVO.setTodayNew(hiddenDangerAllList.stream().filter(i->DateUtil.formatDate(i.getCreateDate(),"yyyy-MM-dd").equals(DateUtil.formatDate(new Date(),"yyyy-MM-dd"))).collect(Collectors.toList()).size());
        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(hiddenDangerAllList)){
            List<Integer> cateList =  hiddenDangerAllList.stream().map(i->i.getCateId()).collect(Collectors.toList());
            //全部隐患分类数据
@@ -856,6 +880,17 @@
                }
                hiddenDangerDataVO.setDepartmentList(companyGeneralDataList);
            }
            if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(hiddenDangerDataVO.getDepartmentList())){
                List<GeneralDataVO> topList = hiddenDangerDataVO.getDepartmentList();
                    Collections.sort(topList, new Comparator<GeneralDataVO>() {
                        @Override
                        public int compare(GeneralDataVO o1, GeneralDataVO o2) {
                            // è¿”回值为int类型,大于0表示正序,小于0表示逆序
                            return o2.getTotal() - o1.getTotal();
                        }
                    });
                    hiddenDangerDataVO.setDepartmentSortList(topList);
            }
        }
        return hiddenDangerDataVO;
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InoutRecordServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,175 @@
package com.doumee.service.business.impl;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.InoutRecordMapper;
import com.doumee.dao.business.model.InoutRecord;
import com.doumee.service.business.InoutRecordService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
/**
 * å‡ºå…¥åœºäººæ¬¡è½¦æ¬¡æ¯æ—¥ç»Ÿè®¡è¡¨Service实现
 * @author æ±Ÿè¹„蹄
 * @date 2025/04/28 16:19
 */
@Service
public class InoutRecordServiceImpl implements InoutRecordService {
    @Autowired
    private InoutRecordMapper inoutRecordMapper;
    @Override
    public Integer create(InoutRecord inoutRecord) {
        inoutRecordMapper.insert(inoutRecord);
        return inoutRecord.getId();
    }
    @Override
    public void deleteById(Integer id) {
        inoutRecordMapper.deleteById(id);
    }
    @Override
    public void delete(InoutRecord inoutRecord) {
        UpdateWrapper<InoutRecord> deleteWrapper = new UpdateWrapper<>(inoutRecord);
        inoutRecordMapper.delete(deleteWrapper);
    }
    @Override
    public void deleteByIdInBatch(List<Integer> ids) {
        if (CollectionUtils.isEmpty(ids)) {
            return;
        }
        inoutRecordMapper.deleteBatchIds(ids);
    }
    @Override
    public void updateById(InoutRecord inoutRecord) {
        inoutRecordMapper.updateById(inoutRecord);
    }
    @Override
    public void updateByIdInBatch(List<InoutRecord> inoutRecords) {
        if (CollectionUtils.isEmpty(inoutRecords)) {
            return;
        }
        for (InoutRecord inoutRecord: inoutRecords) {
            this.updateById(inoutRecord);
        }
    }
    @Override
    public InoutRecord findById(Integer id) {
        return inoutRecordMapper.selectById(id);
    }
    @Override
    public InoutRecord findOne(InoutRecord inoutRecord) {
        QueryWrapper<InoutRecord> wrapper = new QueryWrapper<>(inoutRecord);
        return inoutRecordMapper.selectOne(wrapper);
    }
    @Override
    public List<InoutRecord> findList(InoutRecord inoutRecord) {
        QueryWrapper<InoutRecord> wrapper = new QueryWrapper<>(inoutRecord);
        return inoutRecordMapper.selectList(wrapper);
    }
    @Override
    public PageData<InoutRecord> findPage(PageWrap<InoutRecord> pageWrap) {
        IPage<InoutRecord> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<InoutRecord> queryWrapper = new QueryWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(InoutRecord::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(InoutRecord::getCreator, pageWrap.getModel().getCreator());
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.lambda().ge(InoutRecord::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.lambda().le(InoutRecord::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(InoutRecord::getEditor, pageWrap.getModel().getEditor());
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.lambda().ge(InoutRecord::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(InoutRecord::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(InoutRecord::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(InoutRecord::getRemark, pageWrap.getModel().getRemark());
        }
        if (pageWrap.getModel().getType() != null) {
            queryWrapper.lambda().eq(InoutRecord::getType, pageWrap.getModel().getType());
        }
        if (pageWrap.getModel().getHkEventId() != null) {
            queryWrapper.lambda().eq(InoutRecord::getHkEventId, pageWrap.getModel().getHkEventId());
        }
        if (pageWrap.getModel().getHkId() != null) {
            queryWrapper.lambda().eq(InoutRecord::getHkId, pageWrap.getModel().getHkId());
        }
        if (pageWrap.getModel().getMemberId() != null) {
            queryWrapper.lambda().eq(InoutRecord::getMemberId, pageWrap.getModel().getMemberId());
        }
        if (pageWrap.getModel().getCarId() != null) {
            queryWrapper.lambda().eq(InoutRecord::getCarId, pageWrap.getModel().getCarId());
        }
        if (pageWrap.getModel().getCategoryId() != null) {
            queryWrapper.lambda().eq(InoutRecord::getCategoryId, pageWrap.getModel().getCategoryId());
        }
        if (pageWrap.getModel().getCategoryName() != null) {
            queryWrapper.lambda().eq(InoutRecord::getCategoryName, pageWrap.getModel().getCategoryName());
        }
        if (pageWrap.getModel().getCarBizType() != null) {
            queryWrapper.lambda().eq(InoutRecord::getCarBizType, pageWrap.getModel().getCarBizType());
        }
        if (pageWrap.getModel().getMemberType() != null) {
            queryWrapper.lambda().eq(InoutRecord::getMemberType, pageWrap.getModel().getMemberType());
        }
        if (pageWrap.getModel().getMemberName() != null) {
            queryWrapper.lambda().eq(InoutRecord::getMemberName, pageWrap.getModel().getMemberName());
        }
        if (pageWrap.getModel().getCarCode() != null) {
            queryWrapper.lambda().eq(InoutRecord::getCarCode, pageWrap.getModel().getCarCode());
        }
        if (pageWrap.getModel().getObjType() != null) {
            queryWrapper.lambda().eq(InoutRecord::getObjType, pageWrap.getModel().getObjType());
        }
        if (pageWrap.getModel().getObjId() != null) {
            queryWrapper.lambda().eq(InoutRecord::getObjId, pageWrap.getModel().getObjId());
        }
        if (pageWrap.getModel().getInOrOut() != null) {
            queryWrapper.lambda().eq(InoutRecord::getInOrOut, pageWrap.getModel().getInOrOut());
        }
        if (pageWrap.getModel().getDeviceName() != null) {
            queryWrapper.lambda().eq(InoutRecord::getDeviceName, pageWrap.getModel().getDeviceName());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        return PageData.from(inoutRecordMapper.selectPage(page, queryWrapper));
    }
    @Override
    public long count(InoutRecord inoutRecord) {
        QueryWrapper<InoutRecord> wrapper = new QueryWrapper<>(inoutRecord);
        return inoutRecordMapper.selectCount(wrapper);
    }
}