From fd8b8e08b4dcc86c0beba346becf94bcb73aef27 Mon Sep 17 00:00:00 2001
From: whywhyo <1511349576@qq.com>
Date: 星期一, 23 十月 2023 13:40:18 +0800
Subject: [PATCH] 12736

---
 zhang-content/src/main/java/com/ruoyi/service/impl/PhyscialServiceImpl.java      |  145 ++++++++++++++++++
 /dev/null                                                                        |   20 --
 generate/src/main/resources/mapper/PhyscialMapper.xml                            |    5 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/PhyscialController.java |  141 +++++++++++++++++
 zhang-content/src/main/java/com/ruoyi/domain/Physcial.java                       |   72 +++++++++
 zhang-content/src/main/java/com/ruoyi/mapper/PhyscialMapper.java                 |   17 ++
 zhang-content/src/main/java/com/ruoyi/service/PhyscialService.java               |   34 ++++
 7 files changed, 414 insertions(+), 20 deletions(-)

diff --git a/generate/src/main/java/com/ojq/controller/TravelCountController.java b/generate/src/main/java/com/ojq/controller/TravelCountController.java
deleted file mode 100644
index 28a5141..0000000
--- a/generate/src/main/java/com/ojq/controller/TravelCountController.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.ojq.controller;
-
-
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * <p>
- *  鍓嶇鎺у埗鍣�
- * </p>
- *
- * @author ojq
- * @since 2023-10-06
- */
-@RestController
-@RequestMapping("/travel-count")
-public class TravelCountController {
-
-}
diff --git a/generate/src/main/java/com/ojq/controller/TravelDetailController.java b/generate/src/main/java/com/ojq/controller/TravelDetailController.java
deleted file mode 100644
index 3bbc4fe..0000000
--- a/generate/src/main/java/com/ojq/controller/TravelDetailController.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.ojq.controller;
-
-
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * <p>
- *  鍓嶇鎺у埗鍣�
- * </p>
- *
- * @author ojq
- * @since 2023-10-06
- */
-@RestController
-@RequestMapping("/travel-detail")
-public class TravelDetailController {
-
-}
diff --git a/generate/src/main/java/com/ojq/domain/TravelCount.java b/generate/src/main/java/com/ojq/domain/TravelCount.java
deleted file mode 100644
index e151a19..0000000
--- a/generate/src/main/java/com/ojq/domain/TravelCount.java
+++ /dev/null
@@ -1,105 +0,0 @@
-package com.ojq.domain;
-
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
-import java.io.Serializable;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-/**
- * <p>
- * 
- * </p>
- *
- * @author ojq
- * @since 2023-10-06
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@Accessors(chain = true)
-@TableName("travel_count")
-public class TravelCount implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 涓婚敭
-     */
-    @TableId(value = "id", type = IdType.AUTO)
-    private Long id;
-
-    /**
-     * 鎵�灞炵敤鎴穒d
-     */
-    private Long uid;
-
-    /**
-     * 鏃呮父鍚嶇О
-     */
-    private String name;
-
-    /**
-     * 鏃呮父鍘诲悜
-     */
-    private String destination;
-
-    /**
-     * 鏃呮父寮�濮嬫椂闂�
-     */
-    private LocalDateTime startTime;
-
-    /**
-     * 鏃呮父缁撴潫鏃堕棿
-     */
-    private LocalDateTime endTime;
-
-    /**
-     * 鏃呮父鎬ц川
-     */
-    private String property;
-
-    /**
-     * 鏃呮父鏂瑰紡
-     */
-    private String manner;
-
-    /**
-     * 鍏辫闂ㄧエ璐�
-     */
-    private String entranceTotal;
-
-    /**
-     * 鍏辫浜ら�氳垂
-     */
-    private String travelTotal;
-
-    /**
-     * 鍏辫浣忓璐�
-     */
-    private String stayTotal;
-
-    /**
-     * 鍏辫椁愯垂
-     */
-    private String eatTotal;
-
-    /**
-     * 鍏辫鍥㈣垂
-     */
-    private String groupTotal;
-
-    /**
-     * 鎬婚
-     */
-    private String totalPrice;
-
-    /**
-     * 鍒涘缓鏃堕棿
-     */
-    private LocalDateTime createTime;
-
-
-}
diff --git a/generate/src/main/java/com/ojq/domain/TravelDetail.java b/generate/src/main/java/com/ojq/domain/TravelDetail.java
deleted file mode 100644
index 31a1f02..0000000
--- a/generate/src/main/java/com/ojq/domain/TravelDetail.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package com.ojq.domain;
-
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
-import java.io.Serializable;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-/**
- * <p>
- * 
- * </p>
- *
- * @author ojq
- * @since 2023-10-06
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@Accessors(chain = true)
-@TableName("travel_detail")
-public class TravelDetail implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 涓婚敭id
-     */
-    @TableId(value = "id", type = IdType.AUTO)
-    private Long id;
-
-    /**
-     * 瀵瑰簲鐨勭粺璁¤〃鐨刬d
-     */
-    private Long cid;
-
-    /**
-     * 琛岀▼鏃堕棿
-     */
-    private LocalDateTime happenDate;
-
-    /**
-     * 琛岀▼鍦扮偣
-     */
-    private String address;
-
-    /**
-     * 闂ㄧエ璐�
-     */
-    private String entrance;
-
-    /**
-     * 浣忓閰掑簵
-     */
-    private String hotel;
-
-    /**
-     * 浣忓璐圭敤
-     */
-    private String stay;
-
-    /**
-     * 椁愯垂
-     */
-    private String eat;
-
-    /**
-     * 浜ら�氳垂
-     */
-    private String travel;
-
-    /**
-     * 鐢靛瓙鏂囦欢璺緞
-     */
-    private String url;
-
-    /**
-     * 鍑鸿鏂瑰紡
-     */
-    private String travelMode;
-
-    /**
-     * 杞︽/鑸彮
-     */
-    private String flight;
-
-    /**
-     * 浣跨敤璇佷欢
-     */
-    private String document;
-
-
-}
diff --git a/generate/src/main/java/com/ojq/mapper/TravelCountMapper.java b/generate/src/main/java/com/ojq/mapper/TravelCountMapper.java
deleted file mode 100644
index 3314e0f..0000000
--- a/generate/src/main/java/com/ojq/mapper/TravelCountMapper.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.ojq.mapper;
-
-import com.ojq.domain.TravelCount;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * <p>
- *  Mapper 鎺ュ彛
- * </p>
- *
- * @author ojq
- * @since 2023-10-06
- */
-public interface TravelCountMapper extends BaseMapper<TravelCount> {
-
-}
diff --git a/generate/src/main/java/com/ojq/mapper/TravelDetailMapper.java b/generate/src/main/java/com/ojq/mapper/TravelDetailMapper.java
deleted file mode 100644
index 2e73e70..0000000
--- a/generate/src/main/java/com/ojq/mapper/TravelDetailMapper.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.ojq.mapper;
-
-import com.ojq.domain.TravelDetail;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * <p>
- *  Mapper 鎺ュ彛
- * </p>
- *
- * @author ojq
- * @since 2023-10-06
- */
-public interface TravelDetailMapper extends BaseMapper<TravelDetail> {
-
-}
diff --git a/generate/src/main/java/com/ojq/service/ITravelCountService.java b/generate/src/main/java/com/ojq/service/ITravelCountService.java
deleted file mode 100644
index 9cbc470..0000000
--- a/generate/src/main/java/com/ojq/service/ITravelCountService.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.ojq.service;
-
-import com.ojq.domain.TravelCount;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * <p>
- *  鏈嶅姟绫�
- * </p>
- *
- * @author ojq
- * @since 2023-10-06
- */
-public interface ITravelCountService extends IService<TravelCount> {
-
-}
diff --git a/generate/src/main/java/com/ojq/service/ITravelDetailService.java b/generate/src/main/java/com/ojq/service/ITravelDetailService.java
deleted file mode 100644
index 4b05d3f..0000000
--- a/generate/src/main/java/com/ojq/service/ITravelDetailService.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.ojq.service;
-
-import com.ojq.domain.TravelDetail;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * <p>
- *  鏈嶅姟绫�
- * </p>
- *
- * @author ojq
- * @since 2023-10-06
- */
-public interface ITravelDetailService extends IService<TravelDetail> {
-
-}
diff --git a/generate/src/main/java/com/ojq/service/impl/TravelCountServiceImpl.java b/generate/src/main/java/com/ojq/service/impl/TravelCountServiceImpl.java
deleted file mode 100644
index 4b6d801..0000000
--- a/generate/src/main/java/com/ojq/service/impl/TravelCountServiceImpl.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.ojq.service.impl;
-
-import com.ojq.domain.TravelCount;
-import com.ojq.mapper.TravelCountMapper;
-import com.ojq.service.ITravelCountService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- *  鏈嶅姟瀹炵幇绫�
- * </p>
- *
- * @author ojq
- * @since 2023-10-06
- */
-@Service
-public class TravelCountServiceImpl extends ServiceImpl<TravelCountMapper, TravelCount> implements ITravelCountService {
-
-}
diff --git a/generate/src/main/java/com/ojq/service/impl/TravelDetailServiceImpl.java b/generate/src/main/java/com/ojq/service/impl/TravelDetailServiceImpl.java
deleted file mode 100644
index 26910a6..0000000
--- a/generate/src/main/java/com/ojq/service/impl/TravelDetailServiceImpl.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.ojq.service.impl;
-
-import com.ojq.domain.TravelDetail;
-import com.ojq.mapper.TravelDetailMapper;
-import com.ojq.service.ITravelDetailService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- *  鏈嶅姟瀹炵幇绫�
- * </p>
- *
- * @author ojq
- * @since 2023-10-06
- */
-@Service
-public class TravelDetailServiceImpl extends ServiceImpl<TravelDetailMapper, TravelDetail> implements ITravelDetailService {
-
-}
diff --git a/generate/src/main/resources/mapper/PhyscialMapper.xml b/generate/src/main/resources/mapper/PhyscialMapper.xml
new file mode 100644
index 0000000..00de9cb
--- /dev/null
+++ b/generate/src/main/resources/mapper/PhyscialMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ojq.mapper.PhyscialMapper">
+
+</mapper>
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/PhyscialController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/PhyscialController.java
new file mode 100644
index 0000000..ccb8468
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/zhang/PhyscialController.java
@@ -0,0 +1,141 @@
+package com.ruoyi.web.controller.zhang;
+
+
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.text.Convert;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.ServletUtils;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.domain. Physcial;
+import com.ruoyi.domain.Physcial;
+import com.ruoyi.service. PhyscialService;
+import com.ruoyi.service.PhyscialService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import static com.ruoyi.common.core.page.TableSupport.PAGE_NUM;
+import static com.ruoyi.common.core.page.TableSupport.PAGE_SIZE;
+
+/**
+ * <p>
+ *  鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author ojq
+ * @since 2023-10-23
+ */
+@RestController
+@RequestMapping("/physcial")
+@Slf4j
+public class PhyscialController extends BaseController {
+    @Autowired
+    private PhyscialService physcialService;
+
+    /**
+     * 鏌ヨ鎵�鏈夎褰�
+     */
+    @GetMapping("/all")
+    public AjaxResult listAll(Physcial physcial){
+        Integer pageNum = Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1);
+        Integer pageSize = Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10);
+        return physcialService.selectDataList(physcial,pageNum,pageSize);
+    }
+
+    /**
+     * 鏍规嵁id鏌ヨ
+     */
+    @GetMapping()
+    public AjaxResult listById(Long id){
+        return AjaxResult.success(physcialService.getById(id));
+    }
+
+    /**
+     * 妯℃澘
+     */
+    @PostMapping("/model")
+    public void getModel(HttpServletResponse response){
+        Physcial physcial = new Physcial();
+        List<Physcial> emptyList = Collections.singletonList(physcial);
+        ExcelUtil<Physcial> util = new ExcelUtil<>(Physcial.class);
+        util.exportExcel(response, emptyList, "鍘嗗勾浣撴鏁版嵁璁板綍鏁版嵁");
+    }
+
+    @Log(title = "鍘嗗勾浣撴鏁版嵁璁板綍", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response)
+    {
+        List<Physcial> list = physcialService.selectByCondition();
+        log.info("瀵煎嚭璁板綍涓�:{}",list);
+        ExcelUtil<Physcial> util = new ExcelUtil<>(Physcial.class);
+        util.exportExcel(response, list, "鍘嗗勾浣撴鏁版嵁璁板綍鏁版嵁");
+    }
+
+    /**
+     * 瀵煎嚭鍘嗗勾浣撴鏁版嵁璁板綍鍒楄〃
+     */
+//    @PreAuthorize("@ss.hasPermi('system:property:export')")
+    @Log(title = "鍘嗗勾浣撴鏁版嵁璁板綍", businessType = BusinessType.EXPORT)
+    @PostMapping("/export1/{ids}")
+    public void export1(HttpServletResponse response,@PathVariable Long[] ids)
+    {
+        List<Physcial> list = physcialService.selectByIds(ids);
+        log.info("瀵煎嚭璁板綍涓�:{}",list);
+        ExcelUtil<Physcial> util = new ExcelUtil<>(Physcial.class);
+        util.exportExcel(response, list, "鍘嗗勾浣撴鏁版嵁璁板綍鏁版嵁");
+    }
+
+    /**
+     * 瀵煎叆鍘嗗勾浣撴鏁版嵁璁板綍鍒楄〃
+     */
+    @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.IMPORT)
+    @PostMapping("/importData")
+    public AjaxResult importData(@RequestParam("excelImport") MultipartFile file) throws Exception
+    {
+        return physcialService.importExcel(file);
+    }
+
+    /**
+     * 鏂板鍘嗗勾浣撴鏁版嵁璁板綍
+     */
+//    @PreAuthorize("@ss.hasPermi('system:property:add')")
+    @Log(title = "鍘嗗勾浣撴鏁版嵁璁板綍", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody Physcial physcial)
+    {
+        return physcialService.mySave(physcial);
+    }
+
+    /**
+     * 淇敼鍘嗗勾浣撴鏁版嵁璁板綍
+     */
+//    @PreAuthorize("@ss.hasPermi('system:property:edit')")
+    @Log(title = "鍘嗗勾浣撴鏁版嵁璁板綍", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody Physcial physcial)
+    {
+        return toAjax(physcialService.updateById(physcial));
+    }
+//
+    /**
+     * 鎵归噺鍒犻櫎鍘嗗勾浣撴鏁版嵁璁板綍
+     */
+//    @PreAuthorize("@ss.hasPermi('system:property:remove')")
+    @Log(title = "鍘嗗勾浣撴鏁版嵁璁板綍", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(physcialService.removeByIds(Arrays.asList(ids)));
+    }
+
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/domain/Physcial.java b/zhang-content/src/main/java/com/ruoyi/domain/Physcial.java
new file mode 100644
index 0000000..0be7de5
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/domain/Physcial.java
@@ -0,0 +1,72 @@
+package com.ruoyi.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author ojq
+ * @since 2023-10-23
+ */
+@Data
+@TableName("physcial")
+public class Physcial implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 涓婚敭
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 骞村害鎶ュ憡
+     */
+    private String report;
+
+    /**
+     * 浣撴鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date happenTime;
+
+    @TableField(exist = false)
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date happenStartTime;
+
+    @TableField(exist = false)
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date happenEndTime;
+
+    /**
+     * 鐢靛瓙鏂囦欢
+     */
+    private String url;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date createTime;
+
+    /**
+     * 鐢ㄦ埛id
+     */
+    private Long uid;
+
+
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/mapper/PhyscialMapper.java b/zhang-content/src/main/java/com/ruoyi/mapper/PhyscialMapper.java
new file mode 100644
index 0000000..a4ec8fc
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/mapper/PhyscialMapper.java
@@ -0,0 +1,17 @@
+package com.ruoyi.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.domain.Physcial;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author ojq
+ * @since 2023-10-23
+ */
+public interface PhyscialMapper extends BaseMapper<Physcial> {
+
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/service/PhyscialService.java b/zhang-content/src/main/java/com/ruoyi/service/PhyscialService.java
new file mode 100644
index 0000000..abc17ab
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/service/PhyscialService.java
@@ -0,0 +1,34 @@
+package com.ruoyi.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.domain.Physcial;
+import com.ruoyi.domain.Physcial;
+import com.ruoyi.domain.Physcial;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author ojq
+ * @since 2023-10-23
+ */
+public interface PhyscialService extends IService<Physcial> {
+
+    AjaxResult selectDataList(Physcial physcial, Integer pageNum, Integer pageSize);
+
+    List<Physcial> selectByIds(Long[] ids);
+
+    AjaxResult importExcel(MultipartFile file);
+
+    AjaxResult mySave(Physcial physcial);
+    
+    List<Physcial> selectByCondition();
+
+
+}
diff --git a/zhang-content/src/main/java/com/ruoyi/service/impl/PhyscialServiceImpl.java b/zhang-content/src/main/java/com/ruoyi/service/impl/PhyscialServiceImpl.java
new file mode 100644
index 0000000..8b60a35
--- /dev/null
+++ b/zhang-content/src/main/java/com/ruoyi/service/impl/PhyscialServiceImpl.java
@@ -0,0 +1,145 @@
+package com.ruoyi.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.MapUtils;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.domain.Physcial;
+import com.ruoyi.domain.Physcial;
+import com.ruoyi.domain.Physcial;
+import com.ruoyi.mapper.PhyscialMapper;
+import com.ruoyi.service.PhyscialService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author ojq
+ * @since 2023-10-23
+ */
+@Service
+@Slf4j
+public class PhyscialServiceImpl extends ServiceImpl<PhyscialMapper, Physcial> implements PhyscialService {
+    @Autowired
+    PhyscialServiceImpl physcialService;
+
+    private LambdaQueryWrapper<Physcial> uniqueCondition(Physcial physcial) {
+        LambdaQueryWrapper<Physcial> lqw = new LambdaQueryWrapper<>();
+        lqw.eq(StringUtils.isNotEmpty(physcial.getReport()), Physcial::getReport, physcial.getReport())
+                .eq(physcial.getHappenTime() != null, Physcial::getHappenTime, physcial.getHappenTime())
+                .eq(physcial.getUid() != null, Physcial::getUid, physcial.getUid());
+        return lqw;
+    }
+
+    private LambdaQueryWrapper<Physcial> buildCondition(Physcial physcial, Long userId) {
+        LambdaQueryWrapper<Physcial> lqw = new LambdaQueryWrapper<>();
+        lqw.eq(userId != null, Physcial::getUid, userId)
+                .like(StringUtils.isNotEmpty(physcial.getReport()), Physcial::getReport, physcial.getReport())
+                .between(physcial.getHappenStartTime() != null && physcial.getHappenEndTime() != null, Physcial::getHappenTime, physcial.getHappenStartTime(), physcial.getHappenEndTime())
+                .orderByDesc(Physcial::getCreateTime);
+        return lqw;
+    }
+
+    /**
+     * 鍒嗛〉鏌ユ壘
+     */
+    @Override
+    public AjaxResult selectDataList(Physcial physcial, Integer pageNum, Integer pageSize) {
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        Long userId = user.getUserId();
+        LambdaQueryWrapper<Physcial> lqw = buildCondition(physcial, userId);
+
+        Page<Physcial> pageBean = new Page<>(pageNum, pageSize);
+        Page<Physcial> pageResult = page(pageBean, lqw);
+
+        List<Physcial> beanRecords = pageResult.getRecords();//寰楀埌鏌ヨ鍑烘潵鐨勬暟鎹�
+
+        HashMap<String, Object> data = MapUtils.getResult(pageResult, beanRecords);
+        return AjaxResult.success(data);
+
+    }
+
+
+    @Override
+    public List<Physcial> selectByIds(Long[] ids) {
+        List<Physcial> list = new ArrayList<>();
+        if (ids.length != 0)
+            list = listByIds(Arrays.asList(ids));
+        else
+            list = list();
+        return list;
+    }
+
+    @Override
+    public AjaxResult mySave(Physcial physcial) {
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        Long userId = user.getUserId();
+        physcial.setUid(userId);
+
+        //妫�鏌ユ槸鍚︽湁閲嶅鏁版嵁鎻掑叆
+        LambdaQueryWrapper<Physcial> lqw = uniqueCondition(physcial);
+        List<Physcial> list = list(lqw);
+        if (list.size() > 0) {
+            throw new RuntimeException("璇峰嬁鏂板閲嶅鏁版嵁");
+        }
+
+        if (save(physcial)) {
+            return AjaxResult.success();
+        } else {
+            return AjaxResult.error();
+        }
+
+    }
+
+    @Override
+    public List<Physcial> selectByCondition() {
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        Long userId = user.getUserId();
+        Physcial physcial = new Physcial();
+        LambdaQueryWrapper<Physcial> lqw = buildCondition(physcial, userId);
+        return list(lqw);
+
+    }
+
+    @Override
+    @Transactional
+    public AjaxResult importExcel(MultipartFile file) {
+
+        ExcelUtil<Physcial> util = new ExcelUtil<>(Physcial.class);
+        List<Physcial> dataList = null;
+        try {
+            dataList = util.importExcel(file.getInputStream());
+        } catch (Exception e) {
+            throw new RuntimeException("娌℃湁鎸夌収瑙勫垯瀵煎叆鏁版嵁");
+        }
+
+        assert dataList != null;
+
+        for (Physcial physcial : dataList) {
+            physcialService.mySave(physcial);
+        }
+
+        return AjaxResult.success();
+
+    }
+    
+
+}

--
Gitblit v1.9.1