From 16d63c3d68d131ad0cc4a8bd9f22a0c0515aa6bf Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期三, 17 七月 2024 18:23:57 +0800
Subject: [PATCH] 工时的各需求+检验任务修改

---
 inspect-server/src/main/resources/mapper/InsSampleMapper.xml                                              |    3 
 performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryWorkingHoursDayMapper.java               |    1 
 performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryOutputWorkingHoursService.java          |    2 
 inspect-server/src/main/java/com/yuanchu/mom/pojo/InsFiber.java                                           |    3 
 performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOriginalHoursDto.java                       |   11 
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java                    |   35 ++
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java                        |   19 +
 performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java |   56 ++-
 performance-server/src/main/resources/mapper/AuxiliaryOriginalHoursMapper.xml                             |    4 
 performance-server/src/main/resources/mapper/AuxiliaryOutputWorkingHoursMapper.xml                        |   58 ++-
 performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java      |  533 ++++++++++++++++++----------------
 performance-server/src/main/resources/mapper/AuxiliaryCorrectionHoursMapper.xml                           |    8 
 inspect-server/src/main/resources/mapper/InsOrderMapper.xml                                               |   78 +++--
 performance-server/src/main/resources/mapper/AuxiliaryWorkingHoursDayMapper.xml                           |   20 +
 performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryOutputWorkingHoursController.java    |    5 
 inspect-server/src/main/java/com/yuanchu/mom/pojo/InsFibers.java                                          |    4 
 performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryOutputWorkingHours.java                    |   16 
 performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryCorrectionHoursDto.java                     |    4 
 performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryOutputWorkingHoursMapper.java            |    2 
 inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java                                   |    4 
 20 files changed, 532 insertions(+), 334 deletions(-)

diff --git a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java
index 4167ff4..25fb187 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java
@@ -24,7 +24,7 @@
 public interface InsOrderMapper extends BaseMapper<InsOrder> {
 
     //鑾峰彇妫�楠屼笅鍗曟暟鎹�
-    IPage<SampleOrderDto> selectInsOrderPage(IPage<InsOrder> page, QueryWrapper<SampleOrderDto> ew);
+    IPage<SampleOrderDto> selectInsOrderPage(IPage<InsOrder> page, @Param("ew") QueryWrapper<SampleOrderDto> ew, @Param("laboratory") String laboratory);
 
     //淇敼妫�楠屼笅鍗曟暟鎹�
     int upInsOrderParameter(InsOrder itemParameter);
@@ -51,4 +51,6 @@
     String selLaboratoryCode(String laboratory);
 
     List<Map<Integer, Object>> selectReportModelByOrderId(@Param("id") Integer id, @Param("laboratory") String laboratory);
+
+    String seldepLimsId(int depLimsId);
 }
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsFiber.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsFiber.java
index 54f6435..e3af79f 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsFiber.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsFiber.java
@@ -61,4 +61,7 @@
 
     @ApiModelProperty("鍏宠仈 鍏夌氦甯﹁〃id")
     private Integer insFibersId;
+
+    @TableField(exist = false,select = false)
+    private Integer state;
 }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsFibers.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsFibers.java
index c750145..99cf9c4 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsFibers.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsFibers.java
@@ -58,4 +58,8 @@
 
     @TableField(fill = FieldFill.INSERT_UPDATE)
     private LocalDateTime updateTime;
+
+    @TableField(exist = false,select = false)
+    private Integer state;
+
 }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
index 3904f84..6bf6f97 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
@@ -283,13 +283,40 @@
             //鍐嶆煡璇㈠嚭鎵�鏈夌殑鍏夌氦甯�
             List<InsFibers> insFibers = insFibersMapper.selectList(Wrappers.<InsFibers>lambdaQuery().eq(InsFibers::getInsBushingId, insBushing.getId()));
             if (CollectionUtils.isNotEmpty(insFibers)) {
+                for (InsFibers insFiber : insFibers) {
+                    List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getInsFibersId, insFiber.getId()));
+                    List<Integer> collect = insProducts.stream().map(InsProduct::getInsResult).filter(sm -> ObjectUtils.isNotEmpty(sm)).collect(Collectors.toList());
+                    if (insProducts.size()==collect.size()) {
+                        insFiber.setState(1);//宸叉楠�
+                    }else {
+                        insFiber.setState(0);//鏈楠�
+                    }
+                }
                 fibers.addAll(insFibers);
                 //鏌ュ嚭鍏夌氦甯︿笅鎵�鏈夌殑鍏夌氦
                 List<InsFiber> fiberList = insFiberMapper.selectList(Wrappers.<InsFiber>lambdaQuery().in(InsFiber::getInsFibersId, insFibers.stream().map(InsFibers::getId).collect(Collectors.toList())));
+                for (InsFiber insFiber : fiberList) {
+                    List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getInsFiberId, insFiber.getId()));
+                    List<Integer> collect = insProducts.stream().map(InsProduct::getInsResult).filter(sm -> ObjectUtils.isNotEmpty(sm)).collect(Collectors.toList());
+                    if (insProducts.size()==collect.size()) {
+                        insFiber.setState(1);//宸叉楠�
+                    }else {
+                        insFiber.setState(0);//鏈楠�
+                    }
+                }
                 fiber.addAll(fiberList);
             } else {
                 //濡傛灉濂楃涓嬫病鏈夊厜绾ゅ甫灏卞彧鏈夊厜绾や簡
                 List<InsFiber> insFiberList = insFiberMapper.selectList(Wrappers.<InsFiber>lambdaQuery().eq(InsFiber::getInsBushingId, insBushing.getId()));
+                for (InsFiber insFiber : insFiberList) {
+                    List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getInsFiberId, insFiber.getId()));
+                    List<Integer> collect = insProducts.stream().map(InsProduct::getInsResult).filter(sm -> ObjectUtils.isNotEmpty(sm)).collect(Collectors.toList());
+                    if (insProducts.size()==collect.size()) {
+                        insFiber.setState(1);//宸叉楠�
+                    }else {
+                        insFiber.setState(0);//鏈楠�
+                    }
+                }
                 fiber.addAll(insFiberList);
             }
         }
@@ -362,6 +389,7 @@
                     }
                 }
             }
+            productVos = productVos.stream().sorted(Comparator.comparing(productVo -> productVo.getInsProduct().getInspectionItemClass())).collect(Collectors.toList());
         }
         else {
             //鐢靛姏--鐑惊鐜�
@@ -485,12 +513,15 @@
                 //鏍¢獙濡傛灉杩欎釜浜鸿繖涓娴嬮」鐩凡缁忔坊鍔犺繃浜嗗垯涓嶉渶瑕佸啀鏂板
                 Long count = auxiliaryOutputWorkingHoursMapper.selectCount(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery()
                         .eq(AuxiliaryOutputWorkingHours::getCheck, userId)
-                        .eq(AuxiliaryOutputWorkingHours::getInspectProject, insProduct.getInspectionItemSubclass() + insProduct.getInspectionItem())
+                        .eq(AuxiliaryOutputWorkingHours::getInspectionItem, insProduct.getInspectionItem())
+                        .eq(AuxiliaryOutputWorkingHours::getInspectionItemSubclass, insProduct.getInspectionItemSubclass())
                         .eq(AuxiliaryOutputWorkingHours::getOrderNo, insOrder.getEntrustCode()));
                 if (count == 0 && ObjectUtils.isNotEmpty(insProduct.getManHour())) {
                     //娣诲姞姣忎釜浜虹殑浜ч噺宸ユ椂
                     AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours = new AuxiliaryOutputWorkingHours();
-                    auxiliaryOutputWorkingHours.setInspectProject(insProduct.getInspectionItemSubclass() + insProduct.getInspectionItem());//妫�娴嬮」鐩�
+                    auxiliaryOutputWorkingHours.setInspectionItem(insProduct.getInspectionItem());//妫�娴嬬埗椤�
+                    auxiliaryOutputWorkingHours.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());//妫�娴嬪瓙椤�
+                    auxiliaryOutputWorkingHours.setSample(insSampleMapper.selectById(insProduct.getInsSampleId()).getSampleCode());//鏍峰搧缂栧彿
                     auxiliaryOutputWorkingHours.setOrderNo(insOrder.getEntrustCode());//闈炲姞鐝鎵樺崟鍙�
                     auxiliaryOutputWorkingHours.setWorkTime(insProduct.getManHour());//闈炲姞鐝伐鏃�
                     auxiliaryOutputWorkingHours.setAmount(1);//闈炲姞鐝暟閲�
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
index a67a306..d2e26d5 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
@@ -73,10 +73,23 @@
     //鑾峰彇妫�楠屼笅鍗曟暟鎹�
     @Override
     public Map<String, Object> selectInsOrderParameter(IPage<InsOrder> page, SampleOrderDto sampleOrderDto) {
+        Map<String, Object> map = new HashMap<>();
+        map.put("head", PrintChina.printChina(SampleOrderDto.class));
         //鍒ゆ柇鍏ㄩ儴,涓汉,缁勭粐鐨勬潈闄�
         Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectInsOrderParameter");
-        User user = userMapper.selectById(map1.get("userId"));
+        User user = userMapper.selectById(map1.get("userId"));//褰撳墠鐧诲綍鐨勪汉
         Integer roleId = user.getRoleId();
+        //鑾峰彇褰撳墠浜烘墍灞炲疄楠屽id
+        String departLimsId = user.getDepartLimsId();
+        String laboratory=null;
+        if (ObjectUtils.isNotEmpty(departLimsId) && !departLimsId.equals("")){
+            String[] split = departLimsId.split(",");
+             //鏌ヨ瀵瑰簲鏋舵瀯鍚嶇О(閫氫俊瀹為獙瀹�,鐢靛姏瀹為獙瀹�,妫�娴嬪姙)
+            String departLims=baseMapper.seldepLimsId(Integer.parseInt(split[split.length - 1]));
+            if (departLims.contains("瀹為獙瀹�")){
+                 laboratory=departLims;
+            }
+        }
         //鍒ゆ柇鏄惁鏄叏閮ㄦ潈闄�
         Power power = powerMapper.selectOne(Wrappers.<Power>lambdaQuery().eq(Power::getRoleId, roleId).eq(Power::getMenuMethod, "selectAllInsOrder"));
         if (ObjectUtils.isEmpty(power)) {
@@ -92,9 +105,7 @@
                 }
             }
         }
-        Map<String, Object> map = new HashMap<>();
-        map.put("head", PrintChina.printChina(SampleOrderDto.class));
-        map.put("body", insOrderMapper.selectInsOrderPage(page, QueryWrappers.queryWrappers(sampleOrderDto)));
+        map.put("body", insOrderMapper.selectInsOrderPage(page, QueryWrappers.queryWrappers(sampleOrderDto),laboratory));
         return map;
     }
 
diff --git a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
index 853eb28..a0b49ae 100644
--- a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
@@ -56,6 +56,42 @@
         <association property="children" resultMap="SampleDefectsChildrenMap" javaType="java.util.List"/>
     </resultMap>
 
+    <select id="selectInsOrderPage" resultType="com.yuanchu.mom.dto.SampleOrderDto">
+        select *
+        from (
+        SELECT
+        io.*,
+        ir.id report_id,
+        ir.url,
+        ir.url_s,
+        (select count(*) from ins_sample isa2
+        where isa2.ins_order_id = io.id and isa2.sample_code NOT REGEXP '/') sample_num,
+        concat(ROUND((select count(*) from ins_product ip
+        where state = 1 and ins_result is not null and ip.ins_sample_id in (select id from ins_sample where
+        ins_sample.ins_order_id= io.id )) / (select count(*) from ins_product ip2
+        where state = 1 and ip2.ins_sample_id in (select id from ins_sample where ins_sample.ins_order_id= io.id )) *
+        100, 2), '%') insProgress,
+        group_concat(distinct isa.sample_code,' ') sample_code,
+        group_concat(distinct isa.sample,' ') sample_name,
+        group_concat(distinct isa.model,' ') sample_model,
+        u.name
+        FROM
+        ins_order io
+        LEFT JOIN ins_sample isa ON io.id = isa.ins_order_id
+        LEFT JOIN ( SELECT id, ins_order_id, is_ratify, url,url_s FROM ins_report WHERE is_ratify = 1 ) ir ON io.id =
+        ir.ins_order_id
+        left join user u on io.create_user = u.id
+        where 1=1
+        <if test="laboratory!=null and laboratory!=''">
+            and io.laboratory=#{laboratory}
+        </if>
+        GROUP BY
+        io.id
+        ) a
+        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+            ${ew.customSqlSegment}
+        </if>
+    </select>
     <resultMap id="SampleDefectsChildrenMap" type="com.yuanchu.mom.vo.SampleDefectsChildrenVo">
         <result column="entrust_code" property="entrust_code"/>
         <result column="inspection_item" property="inspection_item"/>
@@ -82,38 +118,6 @@
         create_time,
         state
         from ins_order
-        ) a
-        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
-            ${ew.customSqlSegment}
-        </if>
-    </select>
-    <select id="selectInsOrderPage" resultType="com.yuanchu.mom.dto.SampleOrderDto">
-        select *
-        from (
-        SELECT
-        io.*,
-        ir.id report_id,
-        ir.url,
-        ir.url_s,
-        (select count(*) from ins_sample isa2
-        where isa2.ins_order_id = io.id and isa2.sample_code NOT REGEXP '/') sample_num,
-        concat(ROUND((select count(*) from ins_product ip
-        where state = 1 and ins_result is not null and ip.ins_sample_id in (select id from ins_sample where
-        ins_sample.ins_order_id= io.id )) / (select count(*) from ins_product ip2
-        where state = 1 and ip2.ins_sample_id in (select id from ins_sample where ins_sample.ins_order_id= io.id )) *
-        100, 2), '%') insProgress,
-        group_concat(distinct isa.sample_code,' ') sample_code,
-        group_concat(distinct isa.sample,' ') sample_name,
-        group_concat(distinct isa.model,' ') sample_model,
-        u.name
-        FROM
-        ins_order io
-        LEFT JOIN ins_sample isa ON io.id = isa.ins_order_id
-        LEFT JOIN ( SELECT id, ins_order_id, is_ratify, url,url_s FROM ins_report WHERE is_ratify = 1 ) ir ON io.id =
-        ir.ins_order_id
-        left join user u on io.create_user = u.id
-        GROUP BY
-        io.id
         ) a
         <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
             ${ew.customSqlSegment}
@@ -233,7 +237,9 @@
         </where>
     </update>
     <update id="updateStatus">
-        update ins_order set state=3 where id=#{id}
+        update ins_order
+        set state=3
+        where id = #{id}
     </update>
 
     <select id="selectSampleDefects" resultMap="selectSampleDefectsMap">
@@ -332,4 +338,10 @@
             ${ew.customSqlSegment}
         </if>
     </select>
+
+    <select id="seldepLimsId" resultType="java.lang.String">
+        select name
+        from department_lims
+        where id = #{depLimsId}
+    </select>
 </mapper>
diff --git a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
index f6c177f..e822231 100644
--- a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
@@ -254,7 +254,7 @@
                method,
                man_day,
                bsm,
-               ask,
+               tell as ask,
                `last_value`,
                ip.ins_result  ip_ins_result,
                state,
@@ -272,6 +272,7 @@
                  left join ins_product ip on isa.id = ip.ins_sample_id
                  left join ins_product_result ipr on ip.id = ipr.ins_product_id
         where ins_order_id = #{id}
+            and template_id is not null
           and state = 1
     </select>
 
diff --git a/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryOutputWorkingHoursController.java b/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryOutputWorkingHoursController.java
index c558ea3..64b980f 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryOutputWorkingHoursController.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryOutputWorkingHoursController.java
@@ -49,8 +49,9 @@
     @ValueClassify("宸ユ椂绠$悊")
     @ApiOperation(value = "缁熻浜ч噺宸ユ椂姹囨�诲拰杈呭姪宸ユ椂姹囨��")
     @PostMapping("/collectWorkingHours")
-    public Result collectWorkingHours(){
-      return Result.success(auxiliaryOutputWorkingHoursService.collectWorkingHours());
+    public Result collectWorkingHours(@RequestBody Map<String, Object> data)throws Exception{
+        AuxiliaryOutputWorkingHoursDto entity = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), AuxiliaryOutputWorkingHoursDto.class);
+        return Result.success(auxiliaryOutputWorkingHoursService.collectWorkingHours(entity));
     }
 
 
diff --git a/performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryCorrectionHoursDto.java b/performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryCorrectionHoursDto.java
index 4cc3b62..0e6bdb7 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryCorrectionHoursDto.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryCorrectionHoursDto.java
@@ -16,4 +16,8 @@
 
     @ApiModelProperty("閮ㄩ棬")
     private String departLims;
+
+    @ApiModelProperty("鎬诲伐鏃�")
+    @ValueTableShow(35)
+    private Double total;
 }
diff --git a/performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOriginalHoursDto.java b/performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOriginalHoursDto.java
index 04702b3..740adfa 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOriginalHoursDto.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOriginalHoursDto.java
@@ -3,9 +3,11 @@
 import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.yuanchu.mom.annotation.ValueTableShow;
+import com.yuanchu.mom.pojo.AuxiliaryCorrectionHours;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.text.DecimalFormat;
 import java.time.LocalDateTime;
 
 @Data
@@ -15,6 +17,9 @@
     @ValueTableShow(2)
     @ExcelProperty(value = "濮撳悕")
     private String name;
+
+    //淇宸ユ椂
+    private AuxiliaryCorrectionHours auxiliaryCorrectionHours;
 
     @ApiModelProperty("绫诲瀷")
     @ValueTableShow(3)
@@ -269,8 +274,14 @@
     @ExcelIgnore
     private Integer thirtyOne;
 
+    @ApiModelProperty("鎬诲伐鏃�")
+    @ValueTableShow(34)
+    @ExcelProperty(value = "鎬诲伐鏃�")
+    private Double total;
+
     @ApiModelProperty("鏈堜唤")
     @ValueTableShow(35)
     @ExcelProperty(value = "鏈堜唤")
     private String month;
+
 }
diff --git a/performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryOutputWorkingHoursMapper.java b/performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryOutputWorkingHoursMapper.java
index d832a03..b94f040 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryOutputWorkingHoursMapper.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryOutputWorkingHoursMapper.java
@@ -34,4 +34,6 @@
 
 
     List<AuxiliaryOutputWorkingHours> selectListByIds(@Param("ids") List<Integer> ids);
+
+    List<AuxiliaryOutputWorkingHours> selectLists(@Param("ew") QueryWrapper<AuxiliaryOutputWorkingHours> ew, @Param("ids") List<Integer> ids);
 }
diff --git a/performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryWorkingHoursDayMapper.java b/performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryWorkingHoursDayMapper.java
index 20f688d..e6055c2 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryWorkingHoursDayMapper.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryWorkingHoursDayMapper.java
@@ -32,4 +32,5 @@
     //鏌ヨ璇ユ湀鐨勮緟鍔╁伐鏃�
     List<Map<String, Object>> totalHours(@Param("month") String month, @Param("ids") List<Integer> ids);
 
+    List<AuxiliaryWorkingHoursDay> selectLists(@Param("ew") QueryWrapper<AuxiliaryWorkingHoursDay> ew, @Param("ids") List<Integer> ids);
 }
diff --git a/performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryOutputWorkingHours.java b/performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryOutputWorkingHours.java
index ffa4801..745d38b 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryOutputWorkingHours.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryOutputWorkingHours.java
@@ -32,10 +32,20 @@
     @ExcelIgnore
     private Integer id;
 
-    @ApiModelProperty("妫�娴嬮」鐩�")
-    @ExcelProperty(value = "妫�娴嬮」鐩�")
+    @ApiModelProperty("妫�娴嬬埗椤�")
+    @ExcelProperty(value = "妫�娴嬬埗椤�")
     @ValueTableShow(2)
-    private String inspectProject;
+    private String inspectionItem;
+
+    @ApiModelProperty("妫�娴嬪瓙椤�")
+    @ExcelProperty(value = "妫�娴嬪瓙椤�")
+    @ValueTableShow(2)
+    private String inspectionItemSubclass;
+
+    @ApiModelProperty("鏍峰搧缂栧彿")
+    @ExcelProperty(value = "鏍峰搧缂栧彿")
+    @ValueTableShow(2)
+    private String sample;
 
     @ApiModelProperty("鍔犵彮濮旀墭鍗曞彿")
     @ExcelProperty(value = "鍔犵彮濮旀墭鍗曞彿")
diff --git a/performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryOutputWorkingHoursService.java b/performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryOutputWorkingHoursService.java
index 4843e27..b157b59 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryOutputWorkingHoursService.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryOutputWorkingHoursService.java
@@ -26,7 +26,7 @@
      * 缁熻浜ч噺宸ユ椂姹囨�诲拰杈呭姪宸ユ椂姹囨��
      * @return
      */
-    Map<String,Object> collectWorkingHours();
+    Map<String,Object> collectWorkingHours(AuxiliaryOutputWorkingHoursDto auxiliaryOutputWorkingHoursDto);
 
     /**
      * 瀵煎嚭
diff --git a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java
index 6b54651..2230285 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java
@@ -14,6 +14,7 @@
 import com.yuanchu.mom.dto.*;
 import com.yuanchu.mom.mapper.*;
 import com.yuanchu.mom.pojo.AuxiliaryCorrectionHours;
+import com.yuanchu.mom.pojo.AuxiliaryOutputWorkingHours;
 import com.yuanchu.mom.pojo.Power;
 import com.yuanchu.mom.pojo.User;
 import com.yuanchu.mom.service.AuxiliaryOriginalHoursService;
@@ -24,6 +25,7 @@
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.net.URLEncoder;
+import java.text.DecimalFormat;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -58,7 +60,6 @@
     public Map<String, Object> selectAuxiliaryOriginalHours(Page page, AuxiliaryOriginalHoursLookDto auxiliaryOriginalHoursLookDto) {
         Map<String, Object> map = new HashMap<>();
         List<Integer> ids = new ArrayList<>();
-        ;
         map.put("head", PrintChina.printChina(AuxiliaryCorrectionHoursDto.class));
         //鍒ゆ柇缁勯暱,缁勫憳,绠$悊鍛樻潈闄�
         Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectAuxiliaryOriginalHours");
@@ -102,8 +103,8 @@
             ids.clear();
             ids.add(userMapper.selectOne(Wrappers.<User>lambdaQuery().like(User::getName, name)).getId());
         }
-        if (ids.size()==0){
-            ids=null;
+        if (ids.size() == 0) {
+            ids = null;
         }
         IPage<AuxiliaryOriginalHoursDto> originalHoursDtoIPage = new Page<>();
         originalHoursDtoIPage.setSize(page.getSize());
@@ -112,36 +113,25 @@
         //浜ч噺宸ユ椂
         List<Map<String, Object>> maps = auxiliaryOutputWorkingHoursMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids);
         if (ObjectUtils.isNotEmpty(maps)) {
-            for (Map<String, Object> objectMap : maps) {
-                auxiliaryOriginalHoursDtos.add(getData(objectMap, "浜ч噺宸ユ椂"));
-            }
-
+            auxiliaryOriginalHoursDtos.addAll(getData(maps, "浜ч噺宸ユ椂").values());
         }
         //杈呭姪宸ユ椂
         List<Map<String, Object>> maps1 = auxiliaryWorkingHoursDayMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids);
         if (ObjectUtils.isNotEmpty(maps1)) {
-            for (Map<String, Object> objectMap : maps1) {
-                auxiliaryOriginalHoursDtos.add(getData(objectMap, "杈呭姪宸ユ椂"));
-            }
+            auxiliaryOriginalHoursDtos.addAll(getData(maps1, "杈呭姪宸ユ椂").values());
         }
         //鍔犵彮宸ユ椂
         //鎬诲伐鏃�
         List<Map<String, Object>> maps2 = auxiliaryOriginalHoursMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids);
         if (ObjectUtils.isNotEmpty(maps2)) {
             //浜ч噺宸ユ椂+杈呭姪宸ユ椂閮戒笉涓虹┖
-            for (Map<String, Object> objectMap : maps2) {
-                auxiliaryOriginalHoursDtos.add(getData(objectMap, "鎬诲伐鏃�"));
-            }
+            auxiliaryOriginalHoursDtos.addAll(getData(maps2, "鎬诲伐鏃�").values());
         }
-        //濡傛灉杓斿姪宸ユ椂涓嶄负绌�
+        //濡傛灉杈呭姪宸ユ椂涓嶄负绌�
         else if (ObjectUtils.isNotEmpty(maps1)) {
-            for (Map<String, Object> objectMap : maps1) {
-                auxiliaryOriginalHoursDtos.add(getData(objectMap, "鎬诲伐鏃�"));
-            }
+            auxiliaryOriginalHoursDtos.addAll(getData(maps1, "鎬诲伐鏃�").values());
         } else if (ObjectUtils.isNotEmpty(maps)) {
-            for (Map<String, Object> objectMap : maps) {
-                auxiliaryOriginalHoursDtos.add(getData(objectMap, "鎬诲伐鏃�"));
-            }
+            auxiliaryOriginalHoursDtos.addAll(getData(maps, "鎬诲伐鏃�").values());
         }
         originalHoursDtoIPage.setRecords(auxiliaryOriginalHoursDtos);
         map.put("body", originalHoursDtoIPage);
@@ -185,266 +175,311 @@
 
     }
 
-    private AuxiliaryOriginalHoursDto getData(Map<String, Object> objectMap, String type) {
-        AuxiliaryOriginalHoursDto auxiliaryOriginalHoursDto = new AuxiliaryOriginalHoursDto();
-        auxiliaryOriginalHoursDto.setName(objectMap.get("name").toString());//濮撳悕
-        auxiliaryOriginalHoursDto.setType(type);
-        auxiliaryOriginalHoursDto.setMonth(objectMap.get("month").toString().substring(0, 7));//鏈堜唤
-        //鏌ヨ杩欎釜浜鸿繖涓湀鏄惁鏈変慨姝g殑浜ч噺宸ユ椂
-        AuxiliaryCorrectionHours auxiliaryCorrectionHours = auxiliaryCorrectionHoursMapper.selectOne(Wrappers.<AuxiliaryCorrectionHours>lambdaQuery()
-                .eq(AuxiliaryCorrectionHours::getNameUser, userMapper.selectOne(Wrappers.<User>lambdaQuery().eq(User::getName, auxiliaryOriginalHoursDto.getName())).getId())
-                .eq(AuxiliaryCorrectionHours::getType, auxiliaryOriginalHoursDto.getType())
-                .eq(AuxiliaryCorrectionHours::getMonth, auxiliaryOriginalHoursDto.getMonth()));
-        switch (objectMap.get("month").toString().substring(8, 10)) {
-            case "01":
-                auxiliaryOriginalHoursDto.setOneHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getOneHours().compareTo(auxiliaryOriginalHoursDto.getOneHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setOne(1);
+    private Map<String, AuxiliaryOriginalHoursDto> getData(List<Map<String, Object>> objectMaps, String type) {
+        Map<String, AuxiliaryOriginalHoursDto> dtoMap = new HashMap<>();
+        for (Map<String, Object> objectMap : objectMaps) {
+            String name = objectMap.get("name").toString();
+            String month = objectMap.get("month").toString().substring(0, 7);
+            AuxiliaryOriginalHoursDto auxiliaryOriginalHoursDto = dtoMap.get(name);
+            if (auxiliaryOriginalHoursDto == null) {
+                auxiliaryOriginalHoursDto = new AuxiliaryOriginalHoursDto();
+                auxiliaryOriginalHoursDto.setName(name);
+                auxiliaryOriginalHoursDto.setType(type);
+                auxiliaryOriginalHoursDto.setMonth(month);
+                // 鏌ヨ杩欎釜浜鸿繖涓湀鏄惁鏈変慨姝g殑浜ч噺宸ユ椂
+                AuxiliaryCorrectionHours auxiliaryCorrectionHours = auxiliaryCorrectionHoursMapper.selectOne(Wrappers.<AuxiliaryCorrectionHours>lambdaQuery()
+                        .eq(AuxiliaryCorrectionHours::getNameUser, userMapper.selectOne(Wrappers.<User>lambdaQuery().eq(User::getName, auxiliaryOriginalHoursDto.getName())).getId())
+                        .eq(AuxiliaryCorrectionHours::getType, auxiliaryOriginalHoursDto.getType())
+                        .eq(AuxiliaryCorrectionHours::getMonth, auxiliaryOriginalHoursDto.getMonth()));
+                auxiliaryOriginalHoursDto.setAuxiliaryCorrectionHours(auxiliaryCorrectionHours);
+                dtoMap.put(name, auxiliaryOriginalHoursDto);
+            }
+            AuxiliaryCorrectionHours auxiliaryCorrectionHours = auxiliaryOriginalHoursDto.getAuxiliaryCorrectionHours();
+            switch (objectMap.get("month").toString().substring(8, 10)) {
+                case "01":
+                    auxiliaryOriginalHoursDto.setOneHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getOneHours().compareTo(auxiliaryOriginalHoursDto.getOneHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setOne(1);
+                        }
                     }
-                }
-                break;
-            case "02":
-                auxiliaryOriginalHoursDto.setTwoHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getTwoHours().compareTo(auxiliaryOriginalHoursDto.getTwoHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setTwo(1);
+                    break;
+                case "02":
+                    auxiliaryOriginalHoursDto.setTwoHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getTwoHours().compareTo(auxiliaryOriginalHoursDto.getTwoHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setTwo(1);
+                        }
                     }
-                }
-                break;
-            case "03":
-                auxiliaryOriginalHoursDto.setThreeHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getThreeHours().compareTo(auxiliaryOriginalHoursDto.getThreeHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setThree(1);
+                    break;
+                case "03":
+                    auxiliaryOriginalHoursDto.setThreeHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getThreeHours().compareTo(auxiliaryOriginalHoursDto.getThreeHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setThree(1);
+                        }
                     }
-                }
-                break;
-            case "04":
-                auxiliaryOriginalHoursDto.setFourHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getFourHours().compareTo(auxiliaryOriginalHoursDto.getFourHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setFour(1);
+                    break;
+                case "04":
+                    auxiliaryOriginalHoursDto.setFourHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getFourHours().compareTo(auxiliaryOriginalHoursDto.getFourHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setFour(1);
+                        }
                     }
-                }
-                break;
-            case "05":
-                auxiliaryOriginalHoursDto.setFiveHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getFiveHours().compareTo(auxiliaryOriginalHoursDto.getFiveHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setFive(1);
+                    break;
+                case "05":
+                    auxiliaryOriginalHoursDto.setFiveHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getFiveHours().compareTo(auxiliaryOriginalHoursDto.getFiveHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setFive(1);
+                        }
                     }
-                }
-                break;
-            case "06":
-                auxiliaryOriginalHoursDto.setSixHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getSixHours().compareTo(auxiliaryOriginalHoursDto.getSixHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setSix(1);
+                    break;
+                case "06":
+                    auxiliaryOriginalHoursDto.setSixHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getSixHours().compareTo(auxiliaryOriginalHoursDto.getSixHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setSix(1);
+                        }
                     }
-                }
-                break;
-            case "07":
-                auxiliaryOriginalHoursDto.setSevenHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getSevenHours().compareTo(auxiliaryOriginalHoursDto.getSevenHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setSeven(1);
+                    break;
+                case "07":
+                    auxiliaryOriginalHoursDto.setSevenHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getSevenHours().compareTo(auxiliaryOriginalHoursDto.getSevenHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setSeven(1);
+                        }
                     }
-                }
-                break;
-            case "08":
-                auxiliaryOriginalHoursDto.setEightHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getEightHours().compareTo(auxiliaryOriginalHoursDto.getEightHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setEight(1);
+                    break;
+                case "08":
+                    auxiliaryOriginalHoursDto.setEightHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getEightHours().compareTo(auxiliaryOriginalHoursDto.getEightHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setEight(1);
+                        }
                     }
-                }
-                break;
-            case "09":
-                auxiliaryOriginalHoursDto.setNineHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getNineHours().compareTo(auxiliaryOriginalHoursDto.getNineHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setNine(1);
+                    break;
+                case "09":
+                    auxiliaryOriginalHoursDto.setNineHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getNineHours().compareTo(auxiliaryOriginalHoursDto.getNineHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setNine(1);
+                        }
                     }
-                }
-                break;
-            case "10":
-                auxiliaryOriginalHoursDto.setTenHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getTenHours().compareTo(auxiliaryOriginalHoursDto.getTenHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setTen(1);
+                    break;
+                case "10":
+                    auxiliaryOriginalHoursDto.setTenHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getTenHours().compareTo(auxiliaryOriginalHoursDto.getTenHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setTen(1);
+                        }
                     }
-                }
-                break;
-            case "11":
-                auxiliaryOriginalHoursDto.setElevenHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getElevenHours().compareTo(auxiliaryOriginalHoursDto.getElevenHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setEleven(1);
+                    break;
+                case "11":
+                    auxiliaryOriginalHoursDto.setElevenHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getElevenHours().compareTo(auxiliaryOriginalHoursDto.getElevenHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setEleven(1);
+                        }
                     }
-                }
-                break;
-            case "12":
-                auxiliaryOriginalHoursDto.setTwelveHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getTwelveHours().compareTo(auxiliaryOriginalHoursDto.getTwelveHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setTwelve(1);
+                    break;
+                case "12":
+                    auxiliaryOriginalHoursDto.setTwelveHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getTwelveHours().compareTo(auxiliaryOriginalHoursDto.getTwelveHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setTwelve(1);
+                        }
                     }
-                }
-                break;
-            case "13":
-                auxiliaryOriginalHoursDto.setThirteenHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getThirteenHours().compareTo(auxiliaryOriginalHoursDto.getThirteenHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setThirteen(1);
+                    break;
+                case "13":
+                    auxiliaryOriginalHoursDto.setThirteenHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getThirteenHours().compareTo(auxiliaryOriginalHoursDto.getThirteenHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setThirteen(1);
+                        }
                     }
-                }
-                break;
-            case "14":
-                auxiliaryOriginalHoursDto.setFourteenHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getFourteenHours().compareTo(auxiliaryOriginalHoursDto.getFourteenHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setFourteen(1);
+                    break;
+                case "14":
+                    auxiliaryOriginalHoursDto.setFourteenHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getFourteenHours().compareTo(auxiliaryOriginalHoursDto.getFourteenHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setFourteen(1);
+                        }
                     }
-                }
-                break;
-            case "15":
-                auxiliaryOriginalHoursDto.setFifteenHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getFifteenHours().compareTo(auxiliaryOriginalHoursDto.getFifteenHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setFifteen(1);
+                    break;
+                case "15":
+                    auxiliaryOriginalHoursDto.setFifteenHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getFifteenHours().compareTo(auxiliaryOriginalHoursDto.getFifteenHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setFifteen(1);
+                        }
                     }
-                }
-                break;
-            case "16":
-                auxiliaryOriginalHoursDto.setSixteenHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getSixteenHours().compareTo(auxiliaryOriginalHoursDto.getSixteenHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setSixteen(1);
+                    break;
+                case "16":
+                    auxiliaryOriginalHoursDto.setSixteenHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getSixteenHours().compareTo(auxiliaryOriginalHoursDto.getSixteenHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setSixteen(1);
+                        }
                     }
-                }
-                break;
-            case "17":
-                auxiliaryOriginalHoursDto.setSeventeenHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getSeventeenHours().compareTo(auxiliaryOriginalHoursDto.getSeventeenHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setSeventeen(1);
+                    break;
+                case "17":
+                    auxiliaryOriginalHoursDto.setSeventeenHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getSeventeenHours().compareTo(auxiliaryOriginalHoursDto.getSeventeenHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setSeventeen(1);
+                        }
                     }
-                }
-                break;
-            case "18":
-                auxiliaryOriginalHoursDto.setEighteenHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getEighteenHours().compareTo(auxiliaryOriginalHoursDto.getEighteenHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setEighteen(1);
+                    break;
+                case "18":
+                    auxiliaryOriginalHoursDto.setEighteenHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getEighteenHours().compareTo(auxiliaryOriginalHoursDto.getEighteenHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setEighteen(1);
+                        }
                     }
-                }
-                break;
-            case "19":
-                auxiliaryOriginalHoursDto.setNineteenHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getNineteenHours().compareTo(auxiliaryOriginalHoursDto.getNineteenHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setNineteen(1);
+                    break;
+                case "19":
+                    auxiliaryOriginalHoursDto.setNineteenHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getNineteenHours().compareTo(auxiliaryOriginalHoursDto.getNineteenHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setNineteen(1);
+                        }
                     }
-                }
-                break;
-            case "20":
-                auxiliaryOriginalHoursDto.setTwentyHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getTwentyHours().compareTo(auxiliaryOriginalHoursDto.getTwentyHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setTwenty(1);
+                    break;
+                case "20":
+                    auxiliaryOriginalHoursDto.setTwentyHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getTwentyHours().compareTo(auxiliaryOriginalHoursDto.getTwentyHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setTwenty(1);
+                        }
                     }
-                }
-                break;
-            case "21":
-                auxiliaryOriginalHoursDto.setTwentyOneHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getTwentyOneHours().compareTo(auxiliaryOriginalHoursDto.getTwentyOneHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setTwentyOne(1);
+                    break;
+                case "21":
+                    auxiliaryOriginalHoursDto.setTwentyOneHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getTwentyOneHours().compareTo(auxiliaryOriginalHoursDto.getTwentyOneHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setTwentyOne(1);
+                        }
                     }
-                }
-                break;
-            case "22":
-                auxiliaryOriginalHoursDto.setTwentyTwoHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getTwentyTwoHours().compareTo(auxiliaryOriginalHoursDto.getTwentyTwoHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setTwentyTwo(1);
+                    break;
+                case "22":
+                    auxiliaryOriginalHoursDto.setTwentyTwoHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getTwentyTwoHours().compareTo(auxiliaryOriginalHoursDto.getTwentyTwoHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setTwentyTwo(1);
+                        }
                     }
-                }
-                break;
-            case "23":
-                auxiliaryOriginalHoursDto.setTwentyThreeHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getTwentyThreeHours().compareTo(auxiliaryOriginalHoursDto.getTwentyThreeHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setTwentyThree(1);
+                    break;
+                case "23":
+                    auxiliaryOriginalHoursDto.setTwentyThreeHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getTwentyThreeHours().compareTo(auxiliaryOriginalHoursDto.getTwentyThreeHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setTwentyThree(1);
+                        }
                     }
-                }
-                break;
-            case "24":
-                auxiliaryOriginalHoursDto.setTwentyFourHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getTwentyFourHours().compareTo(auxiliaryOriginalHoursDto.getTwentyFourHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setTwentyFour(1);
+                    break;
+                case "24":
+                    auxiliaryOriginalHoursDto.setTwentyFourHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getTwentyFourHours().compareTo(auxiliaryOriginalHoursDto.getTwentyFourHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setTwentyFour(1);
+                        }
                     }
-                }
-                break;
-            case "25":
-                auxiliaryOriginalHoursDto.setTwentyFiveHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getTwentyFiveHours().compareTo(auxiliaryOriginalHoursDto.getTwentyFiveHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setTwentyFive(1);
+                    break;
+                case "25":
+                    auxiliaryOriginalHoursDto.setTwentyFiveHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getTwentyFiveHours().compareTo(auxiliaryOriginalHoursDto.getTwentyFiveHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setTwentyFive(1);
+                        }
                     }
-                }
-                break;
-            case "26":
-                auxiliaryOriginalHoursDto.setTwentySixHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getTwentySixHours().compareTo(auxiliaryOriginalHoursDto.getTwentySixHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setTwentySix(1);
+                    break;
+                case "26":
+                    auxiliaryOriginalHoursDto.setTwentySixHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getTwentySixHours().compareTo(auxiliaryOriginalHoursDto.getTwentySixHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setTwentySix(1);
+                        }
                     }
-                }
-                break;
-            case "27":
-                auxiliaryOriginalHoursDto.setTwentySevenHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getTwentySevenHours().compareTo(auxiliaryOriginalHoursDto.getTwentySevenHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setTwentySeven(1);
+                    break;
+                case "27":
+                    auxiliaryOriginalHoursDto.setTwentySevenHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getTwentySevenHours().compareTo(auxiliaryOriginalHoursDto.getTwentySevenHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setTwentySeven(1);
+                        }
                     }
-                }
-                break;
-            case "28":
-                auxiliaryOriginalHoursDto.setTwentyEightHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getTwentyEightHours().compareTo(auxiliaryOriginalHoursDto.getTwentyEightHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setTwentyEight(1);
+                    break;
+                case "28":
+                    auxiliaryOriginalHoursDto.setTwentyEightHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getTwentyEightHours().compareTo(auxiliaryOriginalHoursDto.getTwentyEightHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setTwentyEight(1);
+                        }
                     }
-                }
-                break;
-            case "29":
-                auxiliaryOriginalHoursDto.setTwentyNineHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getTwentyNineHours().compareTo(auxiliaryOriginalHoursDto.getTwentyNineHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setTwentyNine(1);
+                    break;
+                case "29":
+                    auxiliaryOriginalHoursDto.setTwentyNineHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getTwentyNineHours().compareTo(auxiliaryOriginalHoursDto.getTwentyNineHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setTwentyNine(1);
+                        }
                     }
-                }
-                break;
-            case "30":
-                auxiliaryOriginalHoursDto.setThirtyHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getThirtyHours().compareTo(auxiliaryOriginalHoursDto.getThirtyHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setThirty(1);
+                    break;
+                case "30":
+                    auxiliaryOriginalHoursDto.setThirtyHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getThirtyHours().compareTo(auxiliaryOriginalHoursDto.getThirtyHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setThirty(1);
+                        }
                     }
-                }
-                break;
-            case "31":
-                auxiliaryOriginalHoursDto.setThirtyOneHours(Double.parseDouble(objectMap.get("manHours").toString()));
-                if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
-                    if (auxiliaryCorrectionHours.getThirtyOneHours().compareTo(auxiliaryOriginalHoursDto.getThirtyOneHours()) != 0) {
-                        auxiliaryOriginalHoursDto.setThirtyOne(1);
+                    break;
+                case "31":
+                    auxiliaryOriginalHoursDto.setThirtyOneHours(Double.parseDouble(objectMap.get("manHours").toString()));
+                    if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) {
+                        if (auxiliaryCorrectionHours.getThirtyOneHours().compareTo(auxiliaryOriginalHoursDto.getThirtyOneHours()) != 0) {
+                            auxiliaryOriginalHoursDto.setThirtyOne(1);
+                        }
                     }
-                }
-                break;
+                    break;
+            }
+            auxiliaryOriginalHoursDto.setTotal((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getOneHours()) ? auxiliaryOriginalHoursDto.getOneHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwoHours()) ? auxiliaryOriginalHoursDto.getTwoHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThreeHours()) ? auxiliaryOriginalHoursDto.getThreeHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFourHours()) ? auxiliaryOriginalHoursDto.getFourHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFiveHours()) ? auxiliaryOriginalHoursDto.getFiveHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSixHours()) ? auxiliaryOriginalHoursDto.getSixHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSevenHours()) ? auxiliaryOriginalHoursDto.getSevenHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getEightHours()) ? auxiliaryOriginalHoursDto.getEightHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getNineHours()) ? auxiliaryOriginalHoursDto.getNineHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTenHours()) ? auxiliaryOriginalHoursDto.getTenHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getElevenHours()) ? auxiliaryOriginalHoursDto.getElevenHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwelveHours()) ? auxiliaryOriginalHoursDto.getTwelveHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirteenHours()) ? auxiliaryOriginalHoursDto.getThirteenHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFourteenHours()) ? auxiliaryOriginalHoursDto.getFourteenHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFifteenHours()) ? auxiliaryOriginalHoursDto.getFifteenHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSixteenHours()) ? auxiliaryOriginalHoursDto.getSixteenHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSeventeenHours()) ? auxiliaryOriginalHoursDto.getSeventeenHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getEighteenHours()) ? auxiliaryOriginalHoursDto.getEighteenHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getNineteenHours()) ? auxiliaryOriginalHoursDto.getNineteenHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyHours()) ? auxiliaryOriginalHoursDto.getTwentyHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyOneHours()) ? auxiliaryOriginalHoursDto.getTwentyOneHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyTwoHours()) ? auxiliaryOriginalHoursDto.getTwentyTwoHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyThreeHours()) ? auxiliaryOriginalHoursDto.getTwentyThreeHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyFourHours()) ? auxiliaryOriginalHoursDto.getTwentyFourHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyFiveHours()) ? auxiliaryOriginalHoursDto.getTwentyFiveHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentySixHours()) ? auxiliaryOriginalHoursDto.getTwentySixHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentySevenHours()) ? auxiliaryOriginalHoursDto.getTwentySevenHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyEightHours()) ? auxiliaryOriginalHoursDto.getTwentyEightHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyNineHours()) ? auxiliaryOriginalHoursDto.getTwentyNineHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirtyHours()) ? auxiliaryOriginalHoursDto.getThirtyHours() : 0)
+                    + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirtyOneHours()) ? auxiliaryOriginalHoursDto.getThirtyOneHours() : 0)
+            );
+            DecimalFormat df = new DecimalFormat("#.####"); // 璁惧畾鍥涗綅灏忔暟
+            auxiliaryOriginalHoursDto.setTotal(Double.parseDouble(df.format(auxiliaryOriginalHoursDto.getTotal())));
         }
-        return auxiliaryOriginalHoursDto;
+        return dtoMap;
     }
 }
diff --git a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java
index 577f0f3..ee1d698 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java
@@ -4,6 +4,7 @@
 import com.alibaba.excel.ExcelWriter;
 import com.alibaba.excel.write.metadata.WriteSheet;
 import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -82,8 +83,7 @@
             } else {
                 //绠$悊鍛�(涓嶆坊鍔犻檺鍒舵潯浠舵墍鏈変汉閮藉彲浠ョ湅)
             }
-        }
-        else {
+        } else {
             //鏄粍闀�
             //鏌ヨ缁勯暱涓嬬殑缁勫憳
             List<User> users = userMapper.selectList(Wrappers.<User>lambdaQuery().like(User::getDepartLimsId, user.getDepartLimsId()));
@@ -91,27 +91,27 @@
                 ids.addAll(users.stream().map(User::getId).distinct().collect(Collectors.toList()));
             }
         }
-        if (ids.size()==0){
-            ids=null;
+        if (ids.size() == 0) {
+            ids = null;
         }
-        if (ObjectUtils.isNotEmpty(dates) && ObjectUtils.isNotEmpty(week)){
+        if (ObjectUtils.isNotEmpty(dates) && ObjectUtils.isNotEmpty(week)) {
             String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
             String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
             map.put("body", auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page,
                     QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto)
-                           .ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59")
-                           .ge("week", weeks[0]).le("week", weeks[1]), ids));
-        }else if(ObjectUtils.isNotEmpty(dates) && ObjectUtils.isEmpty(week)){
+                            .ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59")
+                            .ge("week", weeks[0]).le("week", weeks[1]), ids));
+        } else if (ObjectUtils.isNotEmpty(dates) && ObjectUtils.isEmpty(week)) {
             String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
             map.put("body", auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page,
                     QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto)
                             .ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59"), ids));
-        }else if (ObjectUtils.isEmpty(dates) && ObjectUtils.isNotEmpty(week)){
+        } else if (ObjectUtils.isEmpty(dates) && ObjectUtils.isNotEmpty(week)) {
             String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
             map.put("body", auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page,
                     QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto)
                             .ge("week", weeks[0]).le("week", weeks[1]), ids));
-        }else {
+        } else {
             map.put("body", auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto), ids));
         }
         return map;
@@ -119,7 +119,16 @@
 
     //缁熻浜ч噺宸ユ椂姹囨�诲拰杈呭姪宸ユ椂姹囨��
     @Override
-    public Map<String, Object> collectWorkingHours() {
+    public Map<String, Object> collectWorkingHours(AuxiliaryOutputWorkingHoursDto auxiliaryOutputWorkingHoursDto) {
+        AuxiliaryOutputWorkingHours outputWorkingHours = new AuxiliaryOutputWorkingHours();
+        AuxiliaryWorkingHoursDay workingHoursDay = new AuxiliaryWorkingHoursDay();
+        if (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHoursDto.getName())){
+            User user = userMapper.selectOne(Wrappers.<User>lambdaQuery().eq(User::getName, auxiliaryOutputWorkingHoursDto.getName()));
+            outputWorkingHours.setCheck(user.getId());
+            workingHoursDay.setNameUser(user.getId());
+        }
+        String dates = auxiliaryOutputWorkingHoursDto.getDateTime();
+        auxiliaryOutputWorkingHoursDto.setDateTime(null);
         Map<String, Object> map = new HashMap<>();
         Double sumOutputWorkTime = 0.0;
         Double sumApprovedWorkingHour = 0.0;
@@ -145,20 +154,33 @@
                 ids = users.stream().map(User::getId).distinct().collect(Collectors.toList());
             }
         }
-        //缁熻褰撳墠鐢ㄦ埛鐨勪骇鍝佸伐鏃�
-        List<AuxiliaryOutputWorkingHours> auxiliaryOutputWorkingHours = auxiliaryOutputWorkingHoursMapper.selectListByIds(ids);
+        List<AuxiliaryOutputWorkingHours> auxiliaryOutputWorkingHours = new ArrayList<>();
+        List<AuxiliaryWorkingHoursDay> auxiliaryWorkingHoursDays = new ArrayList<>();
+        if (ObjectUtils.isNotEmpty(dates)) {
+            String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
+            //缁熻褰撳墠鐢ㄦ埛鐨勪骇鍝佸伐鏃�
+            auxiliaryOutputWorkingHours = auxiliaryOutputWorkingHoursMapper.selectLists(QueryWrappers.queryWrappers(outputWorkingHours)
+                    .ge("date_time", split[0])
+                    .le("date_time", split[1] + " 23:59:59"),ids);
+            //缁熻褰撳墠鐢ㄦ埛鐨勮緟鍔╁伐鏃�
+            auxiliaryWorkingHoursDays = auxiliaryWorkingHoursDayMapper.selectLists(QueryWrappers.queryWrappers(workingHoursDay)
+                    .eq("state","宸叉壒鍑�")
+                    .ge("date_time", split[0])
+                    .le("date_time", split[1] + " 23:59:59"),ids);
+        } else {
+            auxiliaryOutputWorkingHours = auxiliaryOutputWorkingHoursMapper.selectListByIds(ids);
+            auxiliaryWorkingHoursDays = auxiliaryWorkingHoursDayMapper.selectListByIds(ids);
+        }
         if (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours)) {
             Map<String, Double> sumMap = new HashMap<>();
             for (AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHour : auxiliaryOutputWorkingHours) {
-                if (!sumMap.containsKey(auxiliaryOutputWorkingHour.getManHourGroup())) {
-                    sumMap.put(auxiliaryOutputWorkingHour.getManHourGroup(), auxiliaryOutputWorkingHour.getOutputWorkTime());
+                if (!sumMap.containsKey(auxiliaryOutputWorkingHour.getManHourGroup()+auxiliaryOutputWorkingHour.getOrderNo()+auxiliaryOutputWorkingHour.getSample())) {
+                    sumMap.put(auxiliaryOutputWorkingHour.getManHourGroup()+auxiliaryOutputWorkingHour.getOrderNo()+auxiliaryOutputWorkingHour.getSample(), auxiliaryOutputWorkingHour.getOutputWorkTime());
                 }
             }
             sumOutputWorkTime = sumMap.values().stream().mapToDouble(Double::doubleValue).sum();
         }
         map.put("浜ч噺宸ユ椂姹囨��", sumOutputWorkTime);
-        //缁熻褰撳墠鐢ㄦ埛鐨勮緟鍔╁伐鏃�
-        List<AuxiliaryWorkingHoursDay> auxiliaryWorkingHoursDays = auxiliaryWorkingHoursDayMapper.selectListByIds(ids);
         if (ObjectUtils.isNotEmpty(auxiliaryWorkingHoursDays)) {
             for (AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay : auxiliaryWorkingHoursDays) {
                 sumApprovedWorkingHour += auxiliaryWorkingHoursDay.getNonproductiveTime();
diff --git a/performance-server/src/main/resources/mapper/AuxiliaryCorrectionHoursMapper.xml b/performance-server/src/main/resources/mapper/AuxiliaryCorrectionHoursMapper.xml
index d898a23..6626e9f 100644
--- a/performance-server/src/main/resources/mapper/AuxiliaryCorrectionHoursMapper.xml
+++ b/performance-server/src/main/resources/mapper/AuxiliaryCorrectionHoursMapper.xml
@@ -46,7 +46,13 @@
     <select id="selectAuxiliaryCorrectionHours" resultType="com.yuanchu.mom.dto.AuxiliaryCorrectionHoursDto">
         select A.*
         from (
-        select ach.*,name
+        select ach.*,
+        name,
+        sum(one_hours+two_hours+ three_hours+ four_hours+ five_hours+ six_hours+ seven_hours+ eight_hours+ nine_hours+
+        ten_hours+ eleven_hours+ twelve_hours+thirteen_hours+ fourteen_hours+ fifteen_hours+ sixteen_hours+
+        seventeen_hours+ eighteen_hours+ nineteen_hours+ twenty_hours+ twenty_one_hours+ twenty_two_hours+
+        twenty_three_hours+ twenty_four_hours+ twenty_five_hours+ twenty_six_hours+ twenty_seven_hours+
+        twenty_eight_hours+ twenty_nine_hours+ thirty_hours+ thirty_one_hours) as total
         FROM auxiliary_correction_hours ach
         left join user on user.id=ach.name_user
         WHERE 1=1
diff --git a/performance-server/src/main/resources/mapper/AuxiliaryOriginalHoursMapper.xml b/performance-server/src/main/resources/mapper/AuxiliaryOriginalHoursMapper.xml
index 1b83759..0f7802d 100644
--- a/performance-server/src/main/resources/mapper/AuxiliaryOriginalHoursMapper.xml
+++ b/performance-server/src/main/resources/mapper/AuxiliaryOriginalHoursMapper.xml
@@ -6,7 +6,7 @@
         from (select C.name, C.month, C.manHours + D.manHours as total
         from (select A.name,
         A.month,
-        FORMAT(SUM(manHour), 2) as manHours
+        FORMAT(SUM(manHour), 4) as manHours
         from (
         select user.name,
         case
@@ -35,7 +35,7 @@
         from (
         select user.name,
         date_time as month,
-        FORMAT(SUM(output_work_time), 2) as manHours
+        FORMAT(SUM(output_work_time), 4) as manHours
         from auxiliary_output_working_hours aowh
         left join user on user.id = aowh.`check`
         left join department_lims dl on depart_lims_id = dl.id
diff --git a/performance-server/src/main/resources/mapper/AuxiliaryOutputWorkingHoursMapper.xml b/performance-server/src/main/resources/mapper/AuxiliaryOutputWorkingHoursMapper.xml
index de3994d..31958ad 100644
--- a/performance-server/src/main/resources/mapper/AuxiliaryOutputWorkingHoursMapper.xml
+++ b/performance-server/src/main/resources/mapper/AuxiliaryOutputWorkingHoursMapper.xml
@@ -4,7 +4,9 @@
     <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
     <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.AuxiliaryOutputWorkingHours">
         <id column="id" property="id"/>
-        <result column="inspect_project" property="inspectProject"/>
+        <result column="inspection_item" property="inspectionItem"/>
+        <result column="inspection_item_subclass" property="inspectionItemSubclass"/>
+        <result column="sample" property="sample"/>
         <result column="overtime_order_no" property="overtimeOrderNo"/>
         <result column="overtime_work_time" property="overtimeWorkTime"/>
         <result column="overtime_amount" property="overtimeAmount"/>
@@ -25,7 +27,8 @@
         select *
         from (
         select aowh.id,
-        inspect_project,
+        inspection_item,
+        inspection_item_subclass,
         overtime_order_no,
         overtime_work_time,
         overtime_amount,
@@ -35,7 +38,7 @@
         output_work_time,
         date_time,
         week,
-        SUBSTRING(week_day, 2) AS week_day,
+        week_day,
         name
         FROM auxiliary_output_working_hours aowh
         left join user on user.id=aowh.`check`
@@ -56,40 +59,50 @@
         FROM auxiliary_output_working_hours aowh
         left join user on user.id=aowh.`check`
         WHERE 1=1
-         <if test="ids !=null and ids != ''">
-             and `check` in
-             <foreach collection="ids" index="index" open="(" separator="," close=")" item="val">
-                 #{val}
-             </foreach>
-         </if>
+        <if test="ids !=null and ids != ''">
+            and `check` in
+            <foreach collection="ids" index="index" open="(" separator="," close=")" item="val">
+                #{val}
+            </foreach>
+        </if>
     </select>
     <select id="totalHours" resultType="java.util.Map">
         select A.name,
         A.month,
-        A.manHours
+        FORMAT(SUM(A.manHours), 4) manHours
         from(
         select user.name,
         date_time as month,
-        FORMAT(SUM(output_work_time), 2) as manHours
+        order_no,
+        sample,
+        man_hour_group,
+        output_work_time as manHours
+        -- FORMAT(SUM(output_work_time), 4) as manHours
         from auxiliary_output_working_hours aowh
         left join user on user.id=aowh.`check`
         left join department_lims dl on depart_lims_id=dl.id
         where date_time LIKE CONCAT('%', #{month}, '%')
-        <!--and `check` in (#{ids})-->
         <if test="ids !=null and ids != ''">
             and `check` in
             <foreach collection="ids" open="(" separator="," close=")" item="val">
                 #{val}
             </foreach>
         </if>
-        group by user.name,date_time
-        order by user.name,date_time
+        group by user.name,date_time,order_no,
+        sample,
+        man_hour_group
+        order by user.name,date_time,order_no,
+        sample,
+        man_hour_group
         )A
+        group by A.name,
+        A.month
+        order by A.name,
+        A.month
     </select>
     <select id="selectListByIds" resultType="com.yuanchu.mom.pojo.AuxiliaryOutputWorkingHours">
         select * from auxiliary_output_working_hours
         where 1=1
-        <!--and `check` in(#{ids})-->
         <if test="ids !=null and ids != ''">
             and `check` in
             <foreach collection="ids" index="index" open="(" separator="," close=")" item="val">
@@ -97,4 +110,19 @@
             </foreach>
         </if>
     </select>
+
+    <select id="selectLists" resultMap="BaseResultMap">
+        select * from(select * from auxiliary_output_working_hours
+        WHERE 1=1
+        <if test="ids !=null and ids != ''">
+            and `check` in
+            <foreach collection="ids" index="index" open="(" separator="," close=")" item="val">
+                #{val}
+            </foreach>
+        </if>
+        ) A
+        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+            ${ew.customSqlSegment}
+        </if>
+    </select>
 </mapper>
diff --git a/performance-server/src/main/resources/mapper/AuxiliaryWorkingHoursDayMapper.xml b/performance-server/src/main/resources/mapper/AuxiliaryWorkingHoursDayMapper.xml
index 11e513f..476beb0 100644
--- a/performance-server/src/main/resources/mapper/AuxiliaryWorkingHoursDayMapper.xml
+++ b/performance-server/src/main/resources/mapper/AuxiliaryWorkingHoursDayMapper.xml
@@ -57,8 +57,7 @@
     </select>
     <select id="selectListByIds" resultType="com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay">
         select * from auxiliary_working_hours_day
-        where 1=1
-
+        where state='宸插鏍�'
         <if test="ids !=null and ids != ''">
             and name_user in
             <foreach collection="ids" index="index" open="(" separator="," close=")" item="val">
@@ -69,7 +68,7 @@
     <select id="totalHours" resultType="java.util.Map">
         select A.name,
         A.month,
-        FORMAT(SUM(manHour), 2)as manHours
+        FORMAT(SUM(manHour), 4)as manHours
         from(
         select user.name,
         case when reviewer_nonproductive_time is null then nonproductive_time
@@ -91,4 +90,19 @@
         group by A.name,A.month
         order by A.name,A.month
     </select>
+
+    <select id="selectLists" resultMap="BaseResultMap">
+        select * from(select * from auxiliary_working_hours_day
+        WHERE 1=1
+        <if test="ids !=null and ids != ''">
+            and name_user in
+            <foreach collection="ids" index="index" open="(" separator="," close=")" item="val">
+                #{val}
+            </foreach>
+        </if>
+        ) A
+        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+            ${ew.customSqlSegment}
+        </if>
+    </select>
 </mapper>

--
Gitblit v1.9.3