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