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