ソースを参照

员工绩效APP

yzc 10 ヶ月 前
コミット
1e3cf988f8

+ 2 - 0
hx-form/src/main/java/com/fjhx/form/entity/UserPerformanceSelectDto.java

@@ -11,4 +11,6 @@ import java.util.Date;
 public class UserPerformanceSelectDto {
     @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM")
     private Date dataDate;
+
+    private Long userId;
 }

+ 1 - 1
hx-form/src/main/java/com/fjhx/form/mapper/ReportMapper.java

@@ -34,5 +34,5 @@ public interface ReportMapper {
     /**
      * 员工绩效
      */
-    List<UserPerformanceBo> userPerformanceReport(@Param("dataDate") Date dataDate);
+    List<UserPerformanceBo> userPerformanceReport(@Param("dataDate") Date dataDate, @Param("userId") Long userId);
 }

+ 2 - 2
hx-form/src/main/java/com/fjhx/form/service/impl/ReportServiceImpl.java

@@ -472,7 +472,7 @@ public class ReportServiceImpl implements ReportService {
     @Override
     public List<UserPerformanceBo> userPerformanceReport(UserPerformanceSelectDto dto) {
         Assert.notEmpty(dto.getDataDate(), "日期过滤不能为空");
-        List<UserPerformanceBo> userPerformanceBos = reportMapper.userPerformanceReport(dto.getDataDate());
+        List<UserPerformanceBo> userPerformanceBos = reportMapper.userPerformanceReport(dto.getDataDate(), dto.getUserId());
         //获取月份天数
         int month = DateUtil.month(dto.getDataDate()) + 1;
         int dayCount = DateUtil.lengthOfMonth(month, DateUtil.isLeapYear(DateUtil.year(dto.getDataDate())));
@@ -491,7 +491,7 @@ public class ReportServiceImpl implements ReportService {
 
             JSONObject dayData = new JSONObject();
             for (int i = 1; i <= dayCount; i++) {
-                dayData.put("" + i, parse.getOrDefault(i, 0));
+                dayData.put("" + i, parse.getOrDefault(i < 10 ? "0" + i : "" + i, 0));
 
                 //计算合计
                 JSONObject totalDayData = totalBo.getDayData();

+ 11 - 10
hx-form/src/main/resources/mapper/ReportMapper.xml

@@ -220,17 +220,18 @@
     </select>
     <select id="userPerformanceReport" resultType="com.fjhx.form.entity.UserPerformanceBo">
         SELECT t1.user_id,
-               su.nick_name                                                                AS user_name,
-               sum(t1.amount)                                                              AS amount,
-               CONCAT('{', GROUP_CONCAT(CONCAT('"', t1.`data_day`, '":', t1.amount)), '}') AS dayJson
+        su.nick_name AS user_name,
+        sum(t1.amount) AS amount,
+        CONCAT('{', GROUP_CONCAT(CONCAT('"', t1.`data_day`, '":', t1.amount)), '}') AS dayJson
         FROM (SELECT prd.user_id,
-                     IFNULL(sum(prd.amount), 0)         AS amount,
-                     DATE_FORMAT(prd.create_time, '%d') AS data_day
-              FROM production_reporting_detail prd
-              WHERE DATE_FORMAT(prd.create_time, '%Y-%m') = DATE_FORMAT(#{dataDate}, '%Y-%m')
-              GROUP BY prd.user_id,
-                       data_day) t1
-                 LEFT JOIN sys_user su ON t1.user_id = su.user_id
+        IFNULL(sum(prd.amount), 0) AS amount,
+        DATE_FORMAT(prd.create_time, '%d') AS data_day
+        FROM production_reporting_detail prd
+        WHERE DATE_FORMAT(prd.create_time, '%Y-%m') = DATE_FORMAT(#{dataDate}, '%Y-%m')
+        <if test="userId != null">AND prd.user_id = #{userId}</if>
+        GROUP BY prd.user_id,
+        data_day) t1
+        LEFT JOIN sys_user su ON t1.user_id = su.user_id
         GROUP BY t1.user_id
     </select>
 </mapper>

+ 11 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionReportingDetailSelectDto.java

@@ -1,9 +1,12 @@
 package com.fjhx.mes.entity.production.dto;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.core.domain.BaseSelectDto;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.Date;
+
 /**
  * 生产报工明细列表查询入参实体
  *
@@ -24,4 +27,12 @@ public class ProductionReportingDetailSelectDto extends BaseSelectDto {
      */
     private Long productionProcessesId;
 
+    /**
+     * 报工人Id
+     */
+    private Long userId;
+
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    private Date dataDate;
+
 }

+ 7 - 0
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionReportingDetailServiceImpl.java

@@ -59,6 +59,13 @@ public class ProductionReportingDetailServiceImpl extends ServiceImpl<Production
         //工序过滤
         wrapper.eq("prd", ProductionReportingDetail::getProductionProcessesId, dto.getProductionProcessesId());
 
+        //用户过滤
+        wrapper.eq("prd", ProductionReportingDetail::getUserId, dto.getUserId());
+        //日期过滤
+        if (ObjectUtil.isNotEmpty(dto.getDataDate())) {
+            wrapper.apply("DATE_FORMAT(prd.create_time, '%Y-%m') = DATE_FORMAT({0}, '%Y-%m')", dto.getDataDate());
+        }
+
         //关键字检索
         if (ObjectUtil.isNotEmpty(dto.getKeyword())) {
             List<SysUser> list = sysUserService.list(IWrapper.<SysUser>getWrapper().like(SysUser::getNickName, dto.getKeyword()));