From d42442d6ab074d9cfa4e0f0fc63e4bd85f10c5af Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期一, 28 四月 2025 16:22:38 +0800
Subject: [PATCH] 代码初始化

---
 server/db/business.inout_record.permissions.sql                                                           |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InoutRecordServiceImpl.java  |  175 +++++++++++++++++
 server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/InoutRecordController.java              |   90 +++++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/InoutRecord.java                |  114 +++++++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java |   37 +++
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/HiddenDangerDataVO.java            |   19 +
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/InoutRecordMapper.java                |   12 +
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/InoutRecordService.java           |   98 +++++++++
 8 files changed, 550 insertions(+), 1 deletions(-)

diff --git a/server/db/business.inout_record.permissions.sql b/server/db/business.inout_record.permissions.sql
new file mode 100644
index 0000000..77e9add
--- /dev/null
+++ b/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);
+
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/InoutRecordController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/InoutRecordController.java
new file mode 100644
index 0000000..9198226
--- /dev/null
+++ b/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));
+    }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/InoutRecordMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/InoutRecordMapper.java
new file mode 100644
index 0000000..cf59378
--- /dev/null
+++ b/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> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/InoutRecord.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/InoutRecord.java
new file mode 100644
index 0000000..2cd16fa
--- /dev/null
+++ b/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 = "鍏宠仈浜哄憳缂栫爜锛堝叧鑱攎ember)", example = "1")
+    @ExcelColumn(name="鍏宠仈浜哄憳缂栫爜锛堝叧鑱攎ember)")
+    private Integer memberId;
+
+    @ApiModelProperty(value = "鍏宠仈浜哄憳缂栫爜锛堝叧鑱攃ars)", example = "1")
+    @ExcelColumn(name="鍏宠仈浜哄憳缂栫爜锛堝叧鑱攃ars)")
+    private Integer carId;
+
+    @ApiModelProperty(value = "鍏宠仈鍒嗙被缂栫爜锛堝叧鑱攃ategory)", example = "1")
+    @ExcelColumn(name="鍏宠仈鍒嗙被缂栫爜锛堝叧鑱攃ategory)")
+    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;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/HiddenDangerDataVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/HiddenDangerDataVO.java
index dd29a21..045c888 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/HiddenDangerDataVO.java
+++ b/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 ;
+
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/InoutRecordService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/InoutRecordService.java
new file mode 100644
index 0000000..bd6301b
--- /dev/null
+++ b/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);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
index 2b312cf..903d114 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
+++ b/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琛ㄧず姝e簭锛屽皬浜�0琛ㄧず閫嗗簭
+                            return o2.getTotal() - o1.getTotal();
+                        }
+                    });
+                    hiddenDangerDataVO.setDepartmentSortList(topList);
+            }
         }
 
         return hiddenDangerDataVO;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InoutRecordServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/InoutRecordServiceImpl.java
new file mode 100644
index 0000000..6179758
--- /dev/null
+++ b/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);
+    }
+}

--
Gitblit v1.9.3