From b83bf6316bc81ba3e0eda5e934636bd8ee4c8304 Mon Sep 17 00:00:00 2001
From: “zhuo” <“zhuo@itcast.cn”>
Date: 星期一, 08 一月 2024 17:30:19 +0800
Subject: [PATCH] 员工数据对比

---
 data-server/src/main/java/com/yuanchu/mom/service/DataReportingService.java          |    4 +
 data-server/src/main/java/com/yuanchu/mom/dto/DataComparisonDto.java                 |   55 ++++++++++++++++++
 data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java    |   17 ++++-
 data-server/src/main/java/com/yuanchu/mom/mapper/DataReportingMapper.java            |    4 +
 data-server/src/main/java/com/yuanchu/mom/service/impl/DataReportingServiceImpl.java |   21 +++++++
 data-server/src/main/resources/mapper/DataReportingMapper.xml                        |   28 +++++++++
 6 files changed, 125 insertions(+), 4 deletions(-)

diff --git a/data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java b/data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java
index 30d1cac..0704d60 100644
--- a/data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java
+++ b/data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java
@@ -11,10 +11,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yuanchu.mom.annotation.ValueAuth;
 import com.yuanchu.mom.common.GetLook;
-import com.yuanchu.mom.dto.DataReportingCsvDto;
-import com.yuanchu.mom.dto.DataReportingPageDto;
-import com.yuanchu.mom.dto.ProductCountDto;
-import com.yuanchu.mom.dto.RegistrantCountDto;
+import com.yuanchu.mom.dto.*;
 import com.yuanchu.mom.exception.ErrorException;
 import com.yuanchu.mom.pojo.DataReporting;
 import com.yuanchu.mom.pojo.FansSubmit;
@@ -279,4 +276,16 @@
         }
         return Result.success();
     }
+
+    @ApiOperation(value = "鑾峰彇鏁版嵁瀵规瘮鍒楄〃")
+    @PostMapping("/selectDataComparisonDtoPageList")
+    public Result selectDataComparisonDtoPageList(@RequestBody Map<String, Object> data) {
+        Page page = JSON.parseObject(JSON.toJSONString(data.get("page")), Page.class);
+        DataComparisonDto dataComparisonDto = JSON.parseObject(JSON.toJSONString(data.get("entity")), DataComparisonDto.class);
+        Map<String, Object> stringObjectMap = dataReportingService.selectDataComparisonDtoPageList(page, dataComparisonDto);
+        return Result.success(stringObjectMap);
+    }
+
+    public static void main(String[] args) {
+    }
 }
diff --git a/data-server/src/main/java/com/yuanchu/mom/dto/DataComparisonDto.java b/data-server/src/main/java/com/yuanchu/mom/dto/DataComparisonDto.java
new file mode 100644
index 0000000..dacc791
--- /dev/null
+++ b/data-server/src/main/java/com/yuanchu/mom/dto/DataComparisonDto.java
@@ -0,0 +1,55 @@
+package com.yuanchu.mom.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yuanchu.mom.annotation.ValueTableShow;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @Author 鎴村崜
+ * @Date 2024/1/8
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class DataComparisonDto {
+
+    @ApiModelProperty("璐﹀彿")
+    @ValueTableShow(1)
+    private String account;
+
+    @ApiModelProperty("璐︽埛鍚�")
+    @ValueTableShow(2)
+    private String name;
+
+    @ApiModelProperty("璐︽埛娑堣垂閲戦")
+    @ValueTableShow(3)
+    private BigDecimal consumption;
+
+    @ApiModelProperty("鐧昏鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ValueTableShow(4)
+    private LocalDateTime createTime;
+
+    @ApiModelProperty("瀵规瘮鐨勮处鍙�")
+    @ValueTableShow(5)
+    private String comparisonAccount;
+
+    @ApiModelProperty("瀵规瘮鐨勮处鎴峰悕")
+    @ValueTableShow(6)
+    private String comparisonName;
+
+    @ApiModelProperty("瀵规瘮鐨勬秷璐归噾棰�")
+    @ValueTableShow(7)
+    private BigDecimal comparisonConsumption;
+
+    @ApiModelProperty("瀵规瘮鐨勭櫥璁版椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ValueTableShow(8)
+    private LocalDateTime comparisonCreateTime;
+}
diff --git a/data-server/src/main/java/com/yuanchu/mom/mapper/DataReportingMapper.java b/data-server/src/main/java/com/yuanchu/mom/mapper/DataReportingMapper.java
index 88a955f..5253b16 100644
--- a/data-server/src/main/java/com/yuanchu/mom/mapper/DataReportingMapper.java
+++ b/data-server/src/main/java/com/yuanchu/mom/mapper/DataReportingMapper.java
@@ -2,11 +2,14 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.dto.DataComparisonDto;
 import com.yuanchu.mom.dto.DataReportingPageDto;
 import com.yuanchu.mom.dto.ProductCountDto;
 import com.yuanchu.mom.dto.RegistrantCountDto;
 import com.yuanchu.mom.pojo.DataReporting;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
 import java.util.List;
@@ -38,6 +41,7 @@
 
     Map<String, String> selectUser(Integer userId);
 
+    IPage<DataComparisonDto> selectDataComparisonDtoPageList(Page page, DataComparisonDto dataComparisonDto);
 }
 
 
diff --git a/data-server/src/main/java/com/yuanchu/mom/service/DataReportingService.java b/data-server/src/main/java/com/yuanchu/mom/service/DataReportingService.java
index e60467f..ea9d584 100644
--- a/data-server/src/main/java/com/yuanchu/mom/service/DataReportingService.java
+++ b/data-server/src/main/java/com/yuanchu/mom/service/DataReportingService.java
@@ -1,6 +1,8 @@
 package com.yuanchu.mom.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.dto.DataComparisonDto;
 import com.yuanchu.mom.dto.DataReportingPageDto;
 import com.yuanchu.mom.dto.ProductCountDto;
 import com.yuanchu.mom.dto.RegistrantCountDto;
@@ -40,4 +42,6 @@
 
     String downFansSubmitFile(IPage<FansSubmit> page, FansSubmit fansSubmit);
 
+    Map<String, Object> selectDataComparisonDtoPageList(Page page, DataComparisonDto dataComparisonDto);
+
 }
diff --git a/data-server/src/main/java/com/yuanchu/mom/service/impl/DataReportingServiceImpl.java b/data-server/src/main/java/com/yuanchu/mom/service/impl/DataReportingServiceImpl.java
index efe7b8d..6df59c6 100644
--- a/data-server/src/main/java/com/yuanchu/mom/service/impl/DataReportingServiceImpl.java
+++ b/data-server/src/main/java/com/yuanchu/mom/service/impl/DataReportingServiceImpl.java
@@ -12,10 +12,13 @@
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yuanchu.mom.common.GetLook;
 import com.yuanchu.mom.common.PrintChina;
+import com.yuanchu.mom.dto.DataComparisonDto;
 import com.yuanchu.mom.dto.DataReportingPageDto;
 import com.yuanchu.mom.dto.ProductCountDto;
 import com.yuanchu.mom.dto.RegistrantCountDto;
@@ -302,6 +305,24 @@
         writer.close();
         return name;
     }
+
+    /**
+     * 鑾峰彇鏁版嵁瀵规瘮鍒楄〃
+     */
+    @Override
+    public Map<String, Object> selectDataComparisonDtoPageList(Page page, DataComparisonDto dataComparisonDto) {
+        Map<String, Object> map = new HashMap<>();
+        map.put("head", PrintChina.printChina(DataComparisonDto.class));
+
+        if (StringUtils.isEmpty(dataComparisonDto.getName())
+                || StringUtils.isEmpty(dataComparisonDto.getComparisonName())) {
+            map.put("body", new Page<DataComparisonDto>());
+        }else {
+            IPage<DataComparisonDto> dataReportingPageDtoIPage = dataReportingMapper.selectDataComparisonDtoPageList(page, dataComparisonDto);
+            map.put("body", dataReportingPageDtoIPage);
+        }
+        return map;
+    }
 }
 
 
diff --git a/data-server/src/main/resources/mapper/DataReportingMapper.xml b/data-server/src/main/resources/mapper/DataReportingMapper.xml
index 9a931e2..22ea781 100644
--- a/data-server/src/main/resources/mapper/DataReportingMapper.xml
+++ b/data-server/src/main/resources/mapper/DataReportingMapper.xml
@@ -96,4 +96,32 @@
         select user.department, user.name, user.account from user
         where id = #{userId}
     </select>
+
+    <select id="selectDataComparisonDtoPageList" resultType="com.yuanchu.mom.dto.DataComparisonDto">
+        select a.account account,
+               a.name name,
+               a.account_consumption consumption,
+               a.create_time createTime,
+               b.account comparisonAccount,
+               b.name comparisonName,
+               b.account_consumption comparisonConsumption,
+               b.create_time comparisonCreateTime
+        from (select user.account,
+                     user.name,
+                     dr1.account_consumption,
+                     dr1.create_time
+              from data_reporting dr1
+                       join user on dr1.create_user = user.id
+              where date_format(dr1.create_time, '%Y-%m-%d') = date_format(#{dataComparisonDto.createTime}, '%Y-%m-%d')
+                and user.name like concat('%', #{dataComparisonDto.name}, '%')) a,
+             (select user.account,
+                     user.name,
+                     dr2.account_consumption,
+                     dr2.create_time
+              from data_reporting dr2
+                       join user on dr2.create_user = user.id
+              where date_format(dr2.create_time, '%Y-%m-%d') = date_format(#{dataComparisonDto.createTime}, '%Y-%m-%d')
+                and user.name like concat('%', #{dataComparisonDto.comparisonName}, '%')) b
+        where a.account_consumption != b.account_consumption
+    </select>
 </mapper>

--
Gitblit v1.9.3