From f8a7078cfaf8f4106f1081856260eae55a3a2579 Mon Sep 17 00:00:00 2001
From: zhuguifei <zhuguifei@zhuguifeideiMac.local>
Date: 星期二, 18 三月 2025 08:55:44 +0800
Subject: [PATCH] 完成点检模块

---
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsInspectRecordService.java         |    3 
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectStServiceImpl.java     |   43 ++++++-
 eims-ui/apps/web-antd/src/views/eims/insp-st/data.tsx                                                    |    7 
 eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectStMapper.xml                        |    3 
 eims-ui/apps/web-antd/src/views/eims/components/basis-sub-table.vue                                      |    5 
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsInspectStVo.java                 |    1 
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectRecordServiceImpl.java |    7 +
 eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectRecordMapper.xml                    |   31 ++++++
 eims-ui/apps/web-antd/src/api/eims/insp-record/index.ts                                                  |   11 ++
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsInspectRecordMapper.java            |    3 
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsInspectRecordController.java    |   39 +++++++
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsInspectStBo.java                 |    3 
 eims-ui/apps/web-antd/src/views/eims/insp-st/index.vue                                                   |  108 ++++++++++++++++++---
 13 files changed, 233 insertions(+), 31 deletions(-)

diff --git a/eims-ui/apps/web-antd/src/api/eims/insp-record/index.ts b/eims-ui/apps/web-antd/src/api/eims/insp-record/index.ts
index 09faab4..2a911c5 100644
--- a/eims-ui/apps/web-antd/src/api/eims/insp-record/index.ts
+++ b/eims-ui/apps/web-antd/src/api/eims/insp-record/index.ts
@@ -8,6 +8,7 @@
 enum Api {
   inspRecordExport = '/eims/inspRecord/export',
   inspRecordList = '/eims/inspRecord/list',
+  inspStRecordList = '/eims/inspRecord/stList',
   root = '/eims/inspRecord'
 }
 
@@ -22,6 +23,16 @@
 }
 
 /**
+ * 鏌ヨ姹囨�讳笅鐨勭偣妫�璁板綍鍒楄〃
+ * @param query
+ * @returns {*}
+ */
+
+export function listInspStRecord(params?: any) {
+  return requestClient.get<InspectRecordVO[]>(Api.inspStRecordList, { params });
+}
+
+/**
  * 鏌ヨ鐐规璁板綍璇︾粏
  * @param inspRecordId
  */
diff --git a/eims-ui/apps/web-antd/src/views/eims/components/basis-sub-table.vue b/eims-ui/apps/web-antd/src/views/eims/components/basis-sub-table.vue
index b7e37a0..d2d3732 100644
--- a/eims-ui/apps/web-antd/src/views/eims/components/basis-sub-table.vue
+++ b/eims-ui/apps/web-antd/src/views/eims/components/basis-sub-table.vue
@@ -38,8 +38,9 @@
           Object.assign(formValues, params);
         } else {
           // 鏈紶鍙傚垯鏌ヨ涓�涓笉瀛樺湪鐨勫��
-          const params = { [keyName]: -1 };
-          Object.assign(formValues, params);
+          // const params = { [keyName]: -1 };
+          // Object.assign(formValues, params);
+          return  false
         }
         return await props.listApi({
           pageNum: page.currentPage,
diff --git a/eims-ui/apps/web-antd/src/views/eims/insp-st/data.tsx b/eims-ui/apps/web-antd/src/views/eims/insp-st/data.tsx
index e4de7f4..7fd40eb 100644
--- a/eims-ui/apps/web-antd/src/views/eims/insp-st/data.tsx
+++ b/eims-ui/apps/web-antd/src/views/eims/insp-st/data.tsx
@@ -44,9 +44,9 @@
     fixed: 'left'
   },
   {
-    title: '淇濆吇骞存湀',
-    field: 'planTime',
-    minWidth: 120
+    title: '淇濆吇鏃堕棿',
+    field: 'planTimeStr',
+    minWidth: 200
   },
   {
     title: '鐘舵��',
@@ -54,6 +54,7 @@
     minWidth: 80,
     slots: {
       default: ({ row }) => {
+        if (!row.status) return '';
         return renderDict(row.status, DictEnum.EIMS_INSPECT_STATUS);
       }
     }
diff --git a/eims-ui/apps/web-antd/src/views/eims/insp-st/index.vue b/eims-ui/apps/web-antd/src/views/eims/insp-st/index.vue
index 203ec1a..0319a0b 100644
--- a/eims-ui/apps/web-antd/src/views/eims/insp-st/index.vue
+++ b/eims-ui/apps/web-antd/src/views/eims/insp-st/index.vue
@@ -1,13 +1,16 @@
 <script setup lang="ts">
+import type { Recordable } from '@vben/types';
+
 import { onMounted, ref } from 'vue';
 
 import { Page, useVbenDrawer, type VbenFormProps } from '@vben/common-ui';
+import { $t } from '@vben/locales';
 import { addFullName, getPopupContainer, getVxePopupContainer } from '@vben/utils';
 
-import { Modal, Popconfirm, Space } from 'ant-design-vue';
+import { Button, Modal, Popconfirm, Space } from 'ant-design-vue';
 
 import { useVbenVxeGrid, vxeCheckboxChecked, type VxeGridProps, vxeSortEvent } from '#/adapter/vxe-table';
-import { delMaintOrder, listMaintOrderGroupDetail } from '#/api/eims/maint-order';
+import { listInspStRecord } from '#/api/eims/insp-record';
 import { delInspectSt, listInspectSt } from '#/api/eims/insp-st';
 import { getDeptTree, userList } from '#/api/system/user';
 import BasisSubTable from '#/views/eims/components/basis-sub-table.vue';
@@ -15,13 +18,22 @@
 
 import { columns, querySchema } from './data';
 import inspStDrawer from './insp-st-drawer.vue';
-import type { Recordable } from '@vben/types';
-import { $t } from '@vben/locales';
 
 defineExpose({
   tableSelect
 });
 
+/**
+ * 瑙嗗浘妯″紡
+ * day-鏍规嵁鏃ユ眹鎬�
+ * month-鏍规嵁鏈堟眹鎬�
+ */
+enum ViewMode {
+  Day = 'Day',
+  Month = 'Month'
+}
+
+const curViewMode = ref<ViewMode>(ViewMode.Month);
 const formOptions: VbenFormProps = {
   commonConfig: {
     labelWidth: 80,
@@ -32,6 +44,14 @@
   collapsed: true,
   schema: querySchema(),
   wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',
+  handleReset: async () => {
+    // eslint-disable-next-line no-use-before-define
+    const { formApi, reload } = tableApi;
+    await formApi.resetForm();
+    const formValues = formApi.form.values;
+    formApi.setLatestSubmissionValues(formValues);
+    await reload(formValues);
+  },
   // 鏃ユ湡閫夋嫨鏍煎紡鍖�
   fieldMappingTime: [['planTime', ['params[beginPlanTime]', 'params[endPlanTime]'], ['YYYY-MM-DD 00:00:00', 'YYYY-MM-DD 23:59:59']]]
 };
@@ -52,6 +72,8 @@
   proxyConfig: {
     ajax: {
       query: async ({ page }, formValues = {}) => {
+        const params = { 'viewMode': curViewMode.value };
+        Object.assign(formValues, params);
         return await listInspectSt({
           pageNum: page.currentPage,
           pageSize: page.pageSize,
@@ -72,6 +94,46 @@
   },
   id: 'insp-st-index'
 };
+const fieldsToExclude = new Set(['action', 'inspTime', 'maintUserNames', 'specialNote', 'status']);
+const gridOptions2: VxeGridProps = {
+  checkboxConfig: {
+    // 楂樹寒
+    highlight: true,
+    // 缈婚〉鏃朵繚鐣欓�変腑鐘舵��
+    reserve: true
+    // 鐐瑰嚮琛岄�変腑
+    // trigger: 'row'
+  },
+  columns: columns?.filter((column: any) => !fieldsToExclude.has(column?.field)),
+  height: 'auto',
+  keepSource: true,
+  pagerConfig: {},
+  proxyConfig: {
+    ajax: {
+      query: async ({ page }, formValues = {}) => {
+        const params = { 'viewMode': curViewMode.value };
+        Object.assign(formValues, params);
+        return await listInspectSt({
+          pageNum: page.currentPage,
+          pageSize: page.pageSize,
+          ...formValues
+        });
+      }
+    }
+  },
+  rowConfig: {
+    isHover: true,
+    keyField: 'id'
+  },
+  sortConfig: {
+    // 杩滅▼鎺掑簭
+    remote: true,
+    // 鏀寔澶氬瓧娈垫帓搴� 榛樿鍏抽棴
+    multiple: true
+  },
+  id: 'insp-st-index'
+};
+
 const recordId = ref<string>();
 const [BasicTable, tableApi] = useVbenVxeGrid({
   formOptions,
@@ -80,7 +142,7 @@
     sortChange: (sortParams) => vxeSortEvent(tableApi, sortParams),
     cellClick: (e: any) => {
       const { row } = e;
-      recordId.value = `${row.equId}_${row.planTime}`;
+      recordId.value = `${row.equId}_${row.planTime}_${curViewMode.value}`;
     }
   }
 });
@@ -151,15 +213,16 @@
     }
   ]);
 }
+
 const [InspStDrawer, inspStDrawerApi] = useVbenDrawer({
   connectedComponent: inspStDrawer
 });
-
 
 async function handleEdit(record: Recordable<any>) {
   inspStDrawerApi.setData({ id: record.id });
   inspStDrawerApi.open();
 }
+
 async function handleDelete(row: Recordable<any>) {
   await delInspectSt(row.id);
   await tableApi.query();
@@ -187,6 +250,24 @@
 function tableSelect() {
   return tableApi.grid.getCheckboxRecords();
 }
+
+const dayBtn = ref<any>('default');
+const monBtn = ref<any>('primary');
+
+function queryData(type: ViewMode) {
+  if (type === ViewMode.Day) {
+    dayBtn.value = 'primary';
+    monBtn.value = 'default';
+    curViewMode.value = ViewMode.Day;
+    tableApi.setGridOptions(gridOptions2);
+  } else if (type === ViewMode.Month) {
+    dayBtn.value = 'default';
+    monBtn.value = 'primary';
+    curViewMode.value = ViewMode.Month;
+    tableApi.setGridOptions(gridOptions);
+  }
+  tableApi.query();
+}
 </script>
 
 <template>
@@ -194,7 +275,9 @@
     <div class="flex h-full gap-[8px] flex-col">
       <BasicTable class="h-2/3" table-title="鐐规璁板綍鍒楄〃">
         <template #toolbar-tools>
-          <Space >
+          <Space>
+            <Button :type="dayBtn" @click.stop="queryData(ViewMode.Day)">鏃ヨ鍥�</Button>
+            <Button :type="monBtn" @click.stop="queryData(ViewMode.Month)">鏈堣鍥�</Button>
             <a-button
               :disabled="!vxeCheckboxChecked(tableApi)"
               danger
@@ -225,16 +308,9 @@
             </Popconfirm>
           </Space>
         </template>
-
       </BasicTable>
-      <BasisSubTable
-        :columns="recordCol"
-        :list-api="listMaintOrderGroupDetail"
-        :req-value="recordId"
-        class="h-1/3"
-        req-key="maintCode"
-        title="淇濆吇瀹炴柦椤圭洰"
-      />
+      <BasisSubTable :columns="recordCol" :list-api="listInspStRecord" :req-value="recordId" class="h-1/3"
+                     req-key="inspCode" title="鐐规璁板綍" />
     </div>
     <InspStDrawer @reload="tableApi.query()" />
   </Page>
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsInspectRecordController.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsInspectRecordController.java
index 6a65c62..11f84f6 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsInspectRecordController.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsInspectRecordController.java
@@ -1,11 +1,21 @@
 package org.dromara.eims.controller;
 
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.temporal.TemporalAdjusters;
 import java.util.List;
+import java.util.Map;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.common.core.utils.DateUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.eims.domain.bo.EimsMaintOrderBo;
+import org.dromara.eims.domain.vo.EimsMaintOrderVo;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
 import org.dromara.common.idempotent.annotation.RepeatSubmit;
@@ -46,6 +56,35 @@
         return eimsInspectRecordService.queryPageListCustom(bo, pageQuery);
     }
 
+    @SaCheckPermission("eims:inspectRecord:list")
+    @GetMapping("/stList")
+    public TableDataInfo<EimsInspectRecordVo> groupDetail(EimsInspectRecordBo bo, PageQuery pageQuery) {
+        // 杩欓噷浣跨敤inspCode浼犻�掍簡 equid + plantime + viewModel锛坉ay-鏃ヨ鍥�  month-鏈堣鍥撅級
+        String inspCode = bo.getInspCode();
+        if (StringUtils.isEmpty(inspCode) || !inspCode.contains("_")) {
+            return TableDataInfo.build(new Page<>(0,0));
+        }
+        String[] split = inspCode.split("_");
+        bo.setEquId(Long.valueOf(split[0]));
+        bo.setInspCode(null);
+        LocalDate planTime = DateUtils.parseDate(split[1]).toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+        if((split[2].equals("Day"))){
+            LocalDateTime startOfDay = planTime.atStartOfDay();
+            LocalDateTime endOfDay = planTime.plusDays(1).atStartOfDay().minusSeconds(1);
+            Map<String, Object> params = bo.getParams();
+            params.put("beginPlanTime",startOfDay);
+            params.put("endPlanTime",endOfDay);
+        }else if((split[2].equals("Month"))){
+            LocalDate startOfMonth = planTime.with(TemporalAdjusters.firstDayOfMonth());
+            LocalDate endOfMonth = planTime.with(TemporalAdjusters.lastDayOfMonth());
+            Map<String, Object> params = bo.getParams();
+            params.put("beginPlanTime",startOfMonth);
+            params.put("endPlanTime",endOfMonth);
+        }
+        return eimsInspectRecordService.queryPageListCustom(bo, pageQuery);
+    }
+
+
     /**
      * 瀵煎嚭鐐规璁板綍鍒楄〃
      */
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsInspectStBo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsInspectStBo.java
index 13daeb7..82d3ea9 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsInspectStBo.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/bo/EimsInspectStBo.java
@@ -77,6 +77,9 @@
      */
     private String remark;
 
+    //鍓嶇鐣岄潰鏌ョ湅妯″紡   day-鏃ヨ鍥�   month-鏈堣鍥�
+    private String viewMode;
+
 
 
 
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsInspectStVo.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsInspectStVo.java
index 0997212..021d71b 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsInspectStVo.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/domain/vo/EimsInspectStVo.java
@@ -55,6 +55,7 @@
      */
     @ExcelProperty(value = "璁″垝鏃堕棿")
     private Date planTime;
+    private String planTimeStr;
 
     /**
      * 鐘舵��
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsInspectRecordMapper.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsInspectRecordMapper.java
index 15ea2d5..a71d578 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsInspectRecordMapper.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsInspectRecordMapper.java
@@ -6,7 +6,9 @@
 import org.apache.ibatis.annotations.Param;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 import org.dromara.eims.domain.EimsInspectRecord;
+import org.dromara.eims.domain.EimsInspectSt;
 import org.dromara.eims.domain.vo.EimsInspectRecordVo;
+import org.dromara.eims.domain.vo.EimsInspectStVo;
 
 /**
  * 鐐规璁板綍Mapper鎺ュ彛
@@ -16,5 +18,6 @@
  */
 public interface EimsInspectRecordMapper extends BaseMapperPlus<EimsInspectRecord, EimsInspectRecordVo> {
     Page<EimsInspectRecordVo> selectInspRecordList(@Param("page") Page<EimsInspectRecordVo> page, @Param(Constants.WRAPPER) Wrapper<EimsInspectRecord> queryWrapper);
+    Page<EimsInspectStVo> selectInspRecordDayList(@Param("page") Page<EimsInspectStVo> page, @Param(Constants.WRAPPER) Wrapper<EimsInspectSt> queryWrapper);
 
 }
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsInspectRecordService.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsInspectRecordService.java
index 3de61b3..ebd61d3 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsInspectRecordService.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsInspectRecordService.java
@@ -1,9 +1,11 @@
 package org.dromara.eims.service;
 
+import org.dromara.eims.domain.bo.EimsInspectStBo;
 import org.dromara.eims.domain.vo.EimsInspectRecordVo;
 import org.dromara.eims.domain.bo.EimsInspectRecordBo;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.eims.domain.vo.EimsInspectStVo;
 
 import java.util.Collection;
 import java.util.List;
@@ -74,4 +76,5 @@
      * @return 鐐规璁板綍鍒嗛〉鍒楄〃
      */
     TableDataInfo<EimsInspectRecordVo> queryPageListCustom(EimsInspectRecordBo bo, PageQuery pageQuery);
+
 }
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectRecordServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectRecordServiceImpl.java
index 4901462..55c65ff 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectRecordServiceImpl.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectRecordServiceImpl.java
@@ -12,7 +12,10 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
 import org.dromara.eims.domain.EimsInspectPlan;
+import org.dromara.eims.domain.EimsInspectSt;
 import org.dromara.eims.domain.EimsMaintPlan;
+import org.dromara.eims.domain.bo.EimsInspectStBo;
+import org.dromara.eims.domain.vo.EimsInspectStVo;
 import org.dromara.eims.domain.vo.EimsMaintOrderVo;
 import org.dromara.eims.mapper.EimsInspectPlanMapper;
 import org.dromara.eims.mapper.EimsMaintPlanMapper;
@@ -73,6 +76,7 @@
         return TableDataInfo.build(page);
     }
 
+
     /**
      * 鏌ヨ绗﹀悎鏉′欢鐨勭偣妫�璁板綍鍒楄〃
      *
@@ -112,6 +116,8 @@
         qw.in(bo.getInspDept() != null, "ir.insp_dept", getAllDescendantIds(bo.getInspDept()));
         qw.eq(bo.getStatus() != null, "ir.status", bo.getStatus());
         qw.eq(bo.getInspResult() != null, "ir.insp_result", bo.getInspResult());
+        qw.between(params.get("beginPlanTime") != null && params.get("endPlanTime") != null,
+            "ir.plan_time", params.get("beginPlanTime"), params.get("endPlanTime"));
         qw.eq(bo.getPlanTime()!=null,
             "ir.plan_time", bo.getPlanTime());
         qw.orderByDesc("ir.create_time");
@@ -119,6 +125,7 @@
     }
 
 
+
     /**
      * 鏍规嵁id锛岃幏鍙栨墍鏈夊悗浠d
      *
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectStServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectStServiceImpl.java
index f938a05..dc31019 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectStServiceImpl.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectStServiceImpl.java
@@ -23,10 +23,7 @@
 import java.time.LocalDate;
 import java.time.ZoneId;
 import java.time.temporal.TemporalAdjusters;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Collection;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -62,11 +59,20 @@
      */
     @Override
     public TableDataInfo<EimsInspectStVo> queryPageList(EimsInspectStBo bo, PageQuery pageQuery) {
-        QueryWrapper<EimsInspectSt> lqw = buildWrapper(bo);
-        Page<EimsInspectStVo> result = baseMapper.selectInspStList(pageQuery.build(), lqw);
-        // 濉厖鏁版嵁
-        fillStData(result);
-        return TableDataInfo.build(result);
+        // 鏈堣鍥�
+        if(bo.getViewMode().equals("Month")){
+            QueryWrapper<EimsInspectSt> qw = buildWrapper(bo);
+            Page<EimsInspectStVo> result = baseMapper.selectInspStList(pageQuery.build(), qw);
+            // 濉厖鏁版嵁
+            fillStData(result);
+            return TableDataInfo.build(result);
+            // 鏃ヨ鍥�
+        }else if(bo.getViewMode().equals("Day")){
+            Page<EimsInspectStVo> result = recordMapper.selectInspRecordDayList(pageQuery.build(), buildGroupWrapper(bo));
+            return TableDataInfo.build(result);
+        }
+
+       return null;
     }
 
     private void fillStData(Page<EimsInspectStVo> result) {
@@ -103,6 +109,25 @@
 
     }
 
+    private QueryWrapper<EimsInspectSt> buildGroupWrapper(EimsInspectStBo bo) {
+        Map<String, Object> params = bo.getParams();
+        QueryWrapper<EimsInspectSt> qw = Wrappers.query();
+        qw.like(StringUtils.isNotBlank(bo.getTitle()), "CONCAT(DATE_FORMAT(ir.plan_time, '%Y%m%d'), equ.equ_name)", bo.getTitle());
+        qw.like(StringUtils.isNotBlank(bo.getEquName()), "equ.equ_name", bo.getEquName());
+        qw.like(StringUtils.isNotBlank(bo.getAssetNo()), "equ.asset_no", bo.getAssetNo());
+        qw.between(params.get("beginPlanTime") != null && params.get("endPlanTime") != null,
+            "ir.plan_time", params.get("beginPlanTime"), params.get("endPlanTime"));
+        qw.eq(bo.getInspUser() != null, "ir.insp_user", bo.getInspUser());
+        qw.eq(bo.getVerifyUser() != null, "ir.verify_user", bo.getVerifyUser());
+        qw.eq(bo.getStatus() != null, "ir.status", bo.getStatus());
+        qw.between(params.get("beginPlanTime") != null && params.get("endPlanTime") != null,
+            "ir.plan_time", params.get("beginPlanTime"), params.get("endPlanTime"));
+        qw.groupBy(Arrays.asList("ir.equ_id","ir.plan_time"));
+        qw.orderByDesc( "ir.plan_time");
+
+        return qw;
+    }
+
     /**
      * 鏌ヨ绗﹀悎鏉′欢鐨勭偣妫�姹囨�诲垪琛�
      *
diff --git a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectRecordMapper.xml b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectRecordMapper.xml
index db8135f..bf14d6a 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectRecordMapper.xml
+++ b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectRecordMapper.xml
@@ -6,6 +6,10 @@
 
     <resultMap type="org.dromara.eims.domain.vo.EimsInspectRecordVo" id="EimsInspRecordVoResult">
     </resultMap>
+
+    <resultMap type="org.dromara.eims.domain.vo.EimsInspectStVo" id="EimsInspectStVoResult">
+    </resultMap>
+
     <select id="selectInspRecordList" resultMap="EimsInspRecordVoResult">
         SELECT ir.*,equ.equ_name equName,equ.equ_code equCode,equ.asset_no assetNo,equ.model_no modelNo,ir.create_time createTime,
                us.nick_name inspUserName,dp.dept_name inspDeptName,ue.nick_name verifyUserName
@@ -17,4 +21,31 @@
             ${ew.getCustomSqlSegment}
     </select>
 
+
+    <select id="selectInspRecordDayList" resultMap="EimsInspectStVoResult">
+        SELECT
+            MAX(ir.id) id,
+            ir.equ_id,
+            ir.plan_time,
+            DATE_FORMAT(ir.plan_time, '%Y-%m-%d') as planTimeStr,
+            CONCAT(DATE_FORMAT(ir.plan_time, '%Y%m%d'), equ.equ_name) as title,
+            MAX(equ.equ_name) AS equName,
+            MAX(equ.equ_code) AS equCode,
+            MAX(equ.asset_no) AS assetNo,
+            MAX(equ.model_no) AS modelNo,
+            GROUP_CONCAT(us.nick_name SEPARATOR ', ') AS inspUserNames,
+            GROUP_CONCAT(ue.nick_name SEPARATOR ', ') AS verifyUserNames,
+            COUNT(ir.id) AS recordCount, -- 涓�澶╃偣妫�鎬绘暟
+            SUM(CASE WHEN ir.status = 0 THEN 1 ELSE 0 END) AS unCheckCount,
+            SUM(CASE WHEN ir.status = 1 THEN 1 ELSE 0 END) AS checkCount,
+            SUM(CASE WHEN ir.insp_result = 1 THEN 1 ELSE 0 END) AS normalNum,
+            SUM(CASE WHEN ir.insp_result = 2 THEN 1 ELSE 0 END) AS abNormalNum
+        FROM eims_inspect_record ir
+                 LEFT JOIN eims_equ equ ON ir.equ_id = equ.equ_id
+                 LEFT JOIN sys_user us ON ir.insp_user = us.user_id
+                 LEFT JOIN sys_user ue ON ir.verify_user = ue.user_id
+                 LEFT JOIN sys_dept dp ON ir.insp_dept = dp.dept_id
+            ${ew.getCustomSqlSegment}
+    </select>
+
 </mapper>
diff --git a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectStMapper.xml b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectStMapper.xml
index d3ccccc..b9540eb 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectStMapper.xml
+++ b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsInspectStMapper.xml
@@ -6,9 +6,10 @@
     <resultMap type="org.dromara.eims.domain.vo.EimsInspectStVo" id="MaintInspStVoResult">
     </resultMap>
     <select id="selectInspStList" resultMap="MaintInspStVoResult">
-        SELECT st.*,equ.equ_name equName,equ.asset_no assetNo FROM eims_inspect_st st
+        SELECT st.*,equ.equ_name equName,equ.asset_no assetNo,    DATE_FORMAT(st.plan_time, '%Y-%m') as planTimeStr FROM eims_inspect_st st
                                              LEFT JOIN eims_equ equ on st.equ_id = equ.equ_id
             ${ew.getCustomSqlSegment}
     </select>
 
+
 </mapper>

--
Gitblit v1.9.3