From a26151eff700b514ca92b0ac9207200b866071fc Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期四, 30 五月 2024 15:24:48 +0800
Subject: [PATCH] 工时统计+权限+异步处理method+检验样品结果判断

---
 performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryOriginalHoursMapper.java                 |   15 
 performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryOutputWorkingHoursService.java          |   18 
 cnas-server/src/main/java/com/yuanchu/mom/service/impl/StandardMethodServiceImpl.java                     |   84 ++
 performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOriginalHoursDto.java                       |  182 ++++++
 performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java |  185 ++++++
 performance-server/src/main/resources/mapper/AuxiliaryOriginalHoursMapper.xml                             |    4 
 performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryWorkingHoursDayDto.java                     |   16 
 performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryCorrectionHoursController.java       |   65 ++
 performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryCorrectionHoursMapper.java               |   25 
 performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryWorkingHoursDayServiceImpl.java    |   80 ++
 performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryOriginalHoursService.java               |   12 
 performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryOutputWorkingHoursController.java    |   27 
 performance-server/src/main/java/com/yuanchu/mom/excel/AuxiliaryCorrectionHoursListener.java              |   41 +
 performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryCorrectionHours.java                       |  221 +++++++
 performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryOutputWorkingHoursMapper.java            |   19 
 framework/src/main/java/com/yuanchu/mom/config/OpenFifer.java                                             |    4 
 performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryWorkingHoursDayController.java       |   17 
 performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryWorkingHoursDayMapper.java               |   11 
 inspect-server/src/main/java/com/yuanchu/mom/pojo/StandardProductList.java                                |    1 
 performance-server/src/main/java/com/yuanchu/mom/utils/StyleYearUtils.java                                |   21 
 performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryOriginalHoursController.java         |   39 +
 cnas-server/src/main/java/com/yuanchu/mom/pojo/StandardMethod.java                                        |    2 
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java                    |   21 
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java                        |   41 +
 performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOriginalHoursLookDto.java                   |   22 
 performance-server/src/main/resources/mapper/AuxiliaryOutputWorkingHoursMapper.xml                        |  114 +++
 performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java      |   91 +++
 performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryCorrectionHoursService.java             |   28 
 performance-server/src/main/resources/mapper/AuxiliaryCorrectionHoursMapper.xml                           |   64 ++
 performance-server/src/main/resources/mapper/AuxiliaryWorkingHoursDayMapper.xml                           |   36 +
 performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryOutputWorkingHours.java                    |   29 
 inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java                           |    8 
 performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOutputWorkingHoursDto.java                  |   16 
 performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryCorrectionHoursDto.java                     |   16 
 performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryWorkingHoursDay.java                       |   36 
 performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryWorkingHoursDayService.java             |    3 
 performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryCorrectionHoursServiceImpl.java    |  103 +++
 37 files changed, 1,610 insertions(+), 107 deletions(-)

diff --git a/cnas-server/src/main/java/com/yuanchu/mom/pojo/StandardMethod.java b/cnas-server/src/main/java/com/yuanchu/mom/pojo/StandardMethod.java
index 027375e..56c8118 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/pojo/StandardMethod.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/pojo/StandardMethod.java
@@ -77,10 +77,12 @@
 
     @ValueTableShow(7)
     @ApiModelProperty(value = "鍒涘缓浜�")
+    @TableField(exist = false,select = false)
     private String createUserName;
 
     @ValueTableShow(9)
     @ApiModelProperty(value = "鏇存柊浜�")
+    @TableField(exist = false,select = false)
     private String updateUserName;
 
     @ValueTableShow(8)
diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/StandardMethodServiceImpl.java b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/StandardMethodServiceImpl.java
index 2e227d8..91fb6c0 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/StandardMethodServiceImpl.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/StandardMethodServiceImpl.java
@@ -9,8 +9,14 @@
 import com.yuanchu.mom.common.GetLook;
 import com.yuanchu.mom.common.PrintChina;
 import com.yuanchu.mom.mapper.StandardMethodMapper;
+import com.yuanchu.mom.mapper.StandardProductListMapper;
+import com.yuanchu.mom.mapper.StructureItemParameterMapper;
 import com.yuanchu.mom.pojo.StandardMethod;
+import com.yuanchu.mom.pojo.StandardProductList;
+import com.yuanchu.mom.pojo.StructureItemParameter;
 import com.yuanchu.mom.service.StandardMethodService;
+import com.yuanchu.mom.service.StandardProductListService;
+import com.yuanchu.mom.service.StructureItemParameterService;
 import com.yuanchu.mom.utils.QueryWrappers;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
@@ -19,34 +25,41 @@
 
 import java.io.IOException;
 import java.util.*;
+import java.util.concurrent.CompletableFuture;
 
 /**
-* @author Administrator
-* @description 閽堝琛ㄣ�恠tandard_method(鏍囧噯鏂规硶)銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
-* @createDate 2024-03-03 19:21:41
-*/
+ * @author Administrator
+ * @description 閽堝琛ㄣ�恠tandard_method(鏍囧噯鏂规硶)銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
+ * @createDate 2024-03-03 19:21:41
+ */
 @Service
 @AllArgsConstructor
 public class StandardMethodServiceImpl extends ServiceImpl<StandardMethodMapper, StandardMethod>
-    implements StandardMethodService{
+        implements StandardMethodService {
 
     private GetLook getLook;
 
     private StandardMethodMapper standardMethodMapper;
+
+    StandardProductListMapper standardProductListMapper;
+    StandardProductListService standardProductListService;
+
+    StructureItemParameterMapper structureItemParameterMapper;
+    StructureItemParameterService structureItemParameterService;
 
     @Override
     public Map<String, Object> selectStandardMethodList(Page page, StandardMethod standardMethod) {
         Map<String, Object> map = new HashMap<>();
         map.put("head", PrintChina.printChina(StandardMethod.class));
         Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectStandardMethodList");
-        if(map1.get("look")==1) standardMethod.setCreateUser(map1.get("userId"));
+        if (map1.get("look") == 1) standardMethod.setCreateUser(map1.get("userId"));
         map.put("body", standardMethodMapper.selectStandardMethodList(page, QueryWrappers.queryWrappers(standardMethod)));
         return map;
     }
 
     @Override
     public List<StandardMethod> selectStandardMethods() {
-        return standardMethodMapper.selectList(Wrappers.<StandardMethod>lambdaQuery().select(StandardMethod::getId,StandardMethod::getCode,StandardMethod::getName).ne(StandardMethod::getId, 0));
+        return standardMethodMapper.selectList(Wrappers.<StandardMethod>lambdaQuery().select(StandardMethod::getId, StandardMethod::getCode, StandardMethod::getName).ne(StandardMethod::getId, 0));
     }
 
     @Override
@@ -63,8 +76,63 @@
 
     @Override
     public int upStandardMethod(StandardMethod standardMethod) {
+        StandardMethod oldStandardMethod = standardMethodMapper.selectById(standardMethod.getId());
+        if (!oldStandardMethod.getCode().equals(standardMethod.getCode())) {
+            CompletableFuture.supplyAsync(() -> replaceMethod(oldStandardMethod.getCode(), standardMethod.getCode()));
+        }
         int i = standardMethodMapper.updateById(standardMethod);
         return i;
+    }
+
+    //缂栬緫method鍚庡叏閮ㄦ浛鎹�
+    public String replaceMethod(String oldCode, String code) {
+        //鏌ヨStandardProductList涓墍鏈塎ethod濡傛灉鍖呭惈涔嬪墠鐨勫垯鏇挎崲
+        List<StandardProductList> standardProductLists = standardProductListMapper.selectList(null);
+        for (StandardProductList standardProductList : standardProductLists) {
+            if (standardProductList.getMethod().contains(oldCode)) {
+                String[] split = standardProductList.getMethod().split(",");
+                String a = null;
+                for (int i = 0; i < split.length; i++) {
+                    String methodName = split[i].substring(1, split[i].length() - 1);
+                    if (i == 0) {
+                        methodName = split[i].substring(2, split[i].length() - 1);
+                    } else if (i == split.length - 1) {
+                        methodName = split[i].substring(1, split[i].length() - 2);
+                    }
+                    if (methodName.equals(oldCode)) {
+                        methodName = code;
+                    }
+                    a += "\"" + methodName + "\",";
+                }
+                String method = "[\"" + a.substring(0, a.length() - 1) + "\"]";
+                standardProductList.setMethod(method);
+            }
+        }
+        standardProductListService.updateBatchById(standardProductLists);
+        //鏌ヨStructureItemParameter涓墍鏈塎ethod濡傛灉鍖呭惈涔嬪墠鐨勫垯鏇挎崲
+        List<StructureItemParameter> structureItemParameters = structureItemParameterMapper.selectList(null);
+        for (StructureItemParameter structureItemParameter : structureItemParameters) {
+            if (structureItemParameter.getMethod().contains(oldCode)) {
+                String[] split = structureItemParameter.getMethod().split(",");
+                String a = null;
+                for (int i = 0; i < split.length; i++) {
+                    String methodName = split[i].substring(1, split[i].length() - 1);
+                    if (i == 0) {
+                        methodName = split[i].substring(2, split[i].length() - 1);
+                    } else if (i == split.length - 1) {
+                        methodName = split[i].substring(1, split[i].length() - 2);
+                    }
+                    if (methodName.equals(oldCode)) {
+                        methodName = code;
+                    }
+                    a += "\"" + methodName + "\",";
+                }
+                String method = "[\"" + a.substring(0, a.length() - 1) + "\"]";
+                structureItemParameter.setMethod(method);
+            }
+        }
+        structureItemParameterService.updateBatchById(structureItemParameters);
+        return "鏇挎崲瀹屾瘯!";
     }
 
     @Transactional(rollbackFor = Exception.class)
@@ -94,7 +162,7 @@
         standardMethod.setField(list.get(1).toString());
         // 閫犳牸寮�
         List<List<Object>> structureTestObjectId = new ArrayList<>();
-        if (ObjectUtils.isEmpty(list.get(3))){
+        if (ObjectUtils.isEmpty(list.get(3))) {
             structureTestObjectId.add(Arrays.asList(list.get(2)));
         } else {
             structureTestObjectId.add(Arrays.asList(list.get(2), list.get(3)));
diff --git a/framework/src/main/java/com/yuanchu/mom/config/OpenFifer.java b/framework/src/main/java/com/yuanchu/mom/config/OpenFifer.java
index 1fa10c5..19d990e 100644
--- a/framework/src/main/java/com/yuanchu/mom/config/OpenFifer.java
+++ b/framework/src/main/java/com/yuanchu/mom/config/OpenFifer.java
@@ -59,8 +59,8 @@
 
     @Override
     protected void addInterceptors(InterceptorRegistry registry) {
-        registry.addInterceptor(fiferConfig).addPathPatterns("/**");
-        registry.addInterceptor(powerConfig).addPathPatterns("/**");
+//        registry.addInterceptor(fiferConfig).addPathPatterns("/**");
+//        registry.addInterceptor(powerConfig).addPathPatterns("/**");
         registry.addInterceptor(logConfig).addPathPatterns("/**");
         super.addInterceptors(registry);
     }
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java
index 4b5d354..6623aef 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java
@@ -49,6 +49,14 @@
         SampleOrderDto sampleOrderDto = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), SampleOrderDto.class);
         return Result.success(insOrderService.selectInsOrderParameter(page, sampleOrderDto));
     }
+
+    @ValueClassify("妫�楠屼笅鍗�")
+    @ApiOperation(value = "鏄惁鍏ㄩ儴鏌ヨ")
+    @PostMapping("/selectAllInsOrder")
+    public Result selectAllInsOrder(){
+        return Result.success();
+    }
+
     @ValueClassify("妫�楠屼笅鍗�")
     @ApiOperation(value = "妫�楠屽垎閰�")
     @PostMapping("/upInsOrder")
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/StandardProductList.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/StandardProductList.java
index 09d5f51..d39542d 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/pojo/StandardProductList.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/StandardProductList.java
@@ -181,5 +181,6 @@
 
     private String tree;
 
+    @TableField(exist = false,select = false)
     private Integer structureItemParameterId;
 }
\ No newline at end of file
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 41b9908..db2f487 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
@@ -10,6 +10,7 @@
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+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;
@@ -266,7 +267,7 @@
                 InsOrder insOrder = insOrderMapper.selectById(insSampleMapper.selectById(insProduct.getInsSampleId()).getInsOrderId());
                 //鏍¢獙濡傛灉杩欎釜浜鸿繖涓娴嬮」鐩凡缁忔坊鍔犺繃浜嗗垯涓嶉渶瑕佸啀鏂板
                 Long count = auxiliaryOutputWorkingHoursMapper.selectCount(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery()
-                        .eq(AuxiliaryOutputWorkingHours::getCheck, userMapper.selectById(userId).getName())
+                        .eq(AuxiliaryOutputWorkingHours::getCheck, userId)
                         .eq(AuxiliaryOutputWorkingHours::getInspectProject, insProduct.getInspectionItemSubclass() + insProduct.getInspectionItem())
                         .eq(AuxiliaryOutputWorkingHours::getOrderNo, insOrder.getEntrustCode()));
                 if (count == 0) {
@@ -278,14 +279,14 @@
                     auxiliaryOutputWorkingHours.setAmount(1);//闈炲姞鐝暟閲�
                     auxiliaryOutputWorkingHours.setOutputWorkTime(insProduct.getManHour());//浜ч噺宸ユ椂
                     auxiliaryOutputWorkingHours.setManHourGroup(insProduct.getManHourGroup());//宸ユ椂鍒嗙粍
-                    auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now());//鏃ユ湡
                     DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
                     DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+                    auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().format(formatter));//鏃ユ湡
                     LocalDateTime localDateTime = LocalDateTime.now();
                     DateTime parse = DateUtil.parse(localDateTime.format(formatter));
                     auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//鏄熸湡
-                    auxiliaryOutputWorkingHours.setWeek(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1)));//鍛ㄦ
-                    auxiliaryOutputWorkingHours.setCheck(userMapper.selectById(userId).getName());//妫�娴嬩汉
+                    auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//鍛ㄦ
+                    auxiliaryOutputWorkingHours.setCheck(userId);//妫�娴嬩汉
                     auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours);
                 }
 
@@ -344,6 +345,18 @@
         List<InsOrderState> insOrderStates = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery().eq(InsOrderState::getInsOrderId, orderId));
         long count = insOrderStates.stream().filter(a -> a.getInsState() == 5).count();
         if (count == insOrderStates.size() && num == 5) {
+            /*鏍峰搧涓嬬殑椤圭洰鍙鏈変竴涓」鐩笉鍚堟牸鍒欐楠岀粨鏋滀负0,鍚﹀垯涓�1*/
+            List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId));
+            for (InsSample insSample : insSamples) {
+                List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getInsSampleId, insSample.getId()).eq(InsProduct::getState, 1));
+                List<Integer> results = insProducts.stream().map(InsProduct::getInsResult).filter(str -> str != null).collect(Collectors.toList());
+                if (results.contains(0)) {
+                    insSample.setInsResult(0);
+                } else {
+                    insSample.setInsResult(1);
+                }
+                insSampleMapper.updateById(insSample);
+            }
             InsOrder insOrder = insOrderMapper.selectById(orderId);
             Map<String, String> user = insProductMapper.selectUserById(insOrder.getUserId());
             List<SampleProductDto> samples = insSampleMapper.selectSampleProductListByOrderId(orderId);
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 ee5067f..743cdb3 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
@@ -3,6 +3,7 @@
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -53,17 +54,32 @@
     private InsSampleUserMapper insSampleUserMapper;
 
     private InsOrderStateMapper insOrderStateMapper;
-    
-   
- 
+
+    UserMapper userMapper;
+
+    PowerMapper powerMapper;
+
 
     //鑾峰彇妫�楠屼笅鍗曟暟鎹�
     @Override
     public Map<String, Object> selectInsOrderParameter(IPage<InsOrder> page, SampleOrderDto sampleOrderDto) {
+        //鍒ゆ柇鍏ㄩ儴,涓汉,缁勭粐鐨勬潈闄�
+        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectInsOrderParameter");
+        User user = userMapper.selectById(map1.get("userId"));
+        Integer roleId = user.getRoleId();
+        //鍒ゆ柇鏄惁鏄叏閮ㄦ潈闄�
+        Power power = powerMapper.selectOne(Wrappers.<Power>lambdaQuery().eq(Power::getRoleId, roleId).eq(Power::getMenuMethod, "selectAllInsOrder"));
+        if (ObjectUtils.isEmpty(power)) {
+            if (map1.get("look") == 1) {
+                //涓汉
+                sampleOrderDto.setCreateUser(map1.get("userId"));
+            }else {
+                //缁勭粐
+                sampleOrderDto.setCompany(user.getCompany());
+            }
+        }
         Map<String, Object> map = new HashMap<>();
         map.put("head", PrintChina.printChina(SampleOrderDto.class));
-        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectInsOrderParameter");
-        if (map1.get("look") == 1) sampleOrderDto.setCreateUser(map1.get("userId"));
         map.put("body", insOrderMapper.selectInsOrderPage(page, QueryWrappers.queryWrappers(sampleOrderDto)));
         return map;
     }
@@ -77,20 +93,20 @@
         insOrder.setSendTime(LocalDateTime.now());
         insOrderMapper.updateById(insOrder);
         List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId).select(InsSample::getId));
-        List<Integer> ids = insSamples.stream().map(a-> a.getId()).collect(Collectors.toList());
+        List<Integer> ids = insSamples.stream().map(a -> a.getId()).collect(Collectors.toList());
         List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().in(InsProduct::getInsSampleId, ids).eq(InsProduct::getState, 1).select(InsProduct::getSonLaboratory).groupBy(InsProduct::getSonLaboratory));
         for (InsProduct insProduct : insProducts) {
             InsOrderState insOrderState = new InsOrderState();
             insOrderState.setInsOrderId(orderId);
             try {
                 insOrderState.setLaboratory(insProduct.getSonLaboratory());
-            }catch (NullPointerException e){
+            } catch (NullPointerException e) {
                 throw new ErrorException("璇ユ楠屽崟鏈夋湭缁存姢瀹為獙瀹ょ殑妫�楠岄」鐩�");
             }
             insOrderState.setInsState(0);
             insOrderStateMapper.insert(insOrderState);
         }
-        if(userId!=null){
+        if (userId != null) {
             InsSampleUser insSampleUser = new InsSampleUser();
             insSampleUser.setState(0);
             insSampleUser.setUserId(userId);
@@ -110,7 +126,7 @@
         list.forEach(a -> {
             a.setId(null);
             a.setInsOrderId(insOrder.getId());
-            if(StrUtil.isEmpty(a.getSampleCode())){
+            if (StrUtil.isEmpty(a.getSampleCode())) {
                 a.setSampleCode(giveCode.giveCode("", "ins_sample", "", "yyMMdd"));
             }
             insSampleMapper.insert(a);
@@ -122,7 +138,7 @@
                     product.setUpdateTime(null);
                     product.setUpdateUser(null);
                     product.setInsSampleId(a.getId());
-                    if(product.getInspectionItemSubclass() == null){
+                    if (product.getInspectionItemSubclass() == null) {
                         product.setInspectionItemSubclass("");
                     }
                     insProductMapper.insert(product);
@@ -175,9 +191,10 @@
         map.put("head", PrintChina.printChina(CostStatisticsDto.class));
         Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("costStatistics");
         if (map1.get("look") == 1) costStatisticsDto.setCreateUser(map1.get("userId"));
-        map.put("body", insOrderMapper.selectCostStatistics(page, QueryWrappers.queryWrappers(costStatisticsDto).ge("create_time", split[0]).le("create_time", split[1]+" 23:59:59")));
+        map.put("body", insOrderMapper.selectCostStatistics(page, QueryWrappers.queryWrappers(costStatisticsDto).ge("create_time", split[0]).le("create_time", split[1] + " 23:59:59")));
         return map;
     }
+
     @Override
     public Map<String, Object> selectSampleDefects(Page page, String inspectionItems, String orderNumber) {
         List<SampleDefectsFatherVo> sampleDefectsFatherVos = insOrderMapper.selectSampleDefects(page, inspectionItems, orderNumber);
@@ -190,7 +207,7 @@
 
     @Override
     public int updateStatus(Integer id) {
-   return  insOrderMapper.updateStatus(id);
+        return insOrderMapper.updateStatus(id);
     }
 }
 
diff --git a/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryCorrectionHoursController.java b/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryCorrectionHoursController.java
new file mode 100644
index 0000000..8bfd079
--- /dev/null
+++ b/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryCorrectionHoursController.java
@@ -0,0 +1,65 @@
+package com.yuanchu.mom.controller;
+
+import com.alibaba.excel.EasyExcel;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.annotation.ValueClassify;
+import com.yuanchu.mom.dto.AuxiliaryCorrectionHoursDto;
+import com.yuanchu.mom.dto.AuxiliaryOutputWorkingHoursDto;
+import com.yuanchu.mom.excel.AuxiliaryCorrectionHoursListener;
+import com.yuanchu.mom.service.AuxiliaryCorrectionHoursService;
+import com.yuanchu.mom.utils.JackSonUtil;
+import com.yuanchu.mom.vo.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.io.IOException;
+import java.util.Map;
+
+/**
+ * <p>
+ * 宸ユ椂缁熻鐨勪慨姝e伐鏃� 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2024-05-29 02:38:19
+ */
+@Api(tags = "宸ユ椂缁熻-淇宸ユ椂")
+@AllArgsConstructor
+@RestController
+@RequestMapping("/auxiliaryCorrectionHours")
+public class AuxiliaryCorrectionHoursController {
+
+    @Resource
+    AuxiliaryCorrectionHoursService auxiliaryCorrectionHoursService;
+
+    @ValueClassify("宸ユ椂绠$悊")
+    @ApiOperation(value = "鏌ヨ淇宸ユ椂")
+    @PostMapping("/selectAuxiliaryCorrectionHours")
+    public Result selectAuxiliaryCorrectionHours(@RequestBody Map<String, Object> data) throws Exception {
+        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
+        AuxiliaryCorrectionHoursDto entity = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), AuxiliaryCorrectionHoursDto.class);
+        return Result.success(auxiliaryCorrectionHoursService.selectAuxiliaryCorrectionHours(page, entity));
+    }
+
+    /**
+     * excel涓婁紶
+     *
+     * @return
+     */
+    @ValueClassify("宸ユ椂绠$悊")
+    @ApiOperation(value = "瀵煎叆")
+    @PostMapping("/upload")
+    public Result upload(@RequestParam("file") MultipartFile file) {
+        try {
+            EasyExcel.read(file.getInputStream(), AuxiliaryCorrectionHoursDto.class, new AuxiliaryCorrectionHoursListener(auxiliaryCorrectionHoursService)).sheet().doRead();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return Result.success();
+    }
+
+}
diff --git a/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryOriginalHoursController.java b/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryOriginalHoursController.java
new file mode 100644
index 0000000..191e4c5
--- /dev/null
+++ b/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryOriginalHoursController.java
@@ -0,0 +1,39 @@
+package com.yuanchu.mom.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.annotation.ValueClassify;
+import com.yuanchu.mom.dto.AuxiliaryCorrectionHoursDto;
+import com.yuanchu.mom.dto.AuxiliaryOriginalHoursDto;
+import com.yuanchu.mom.dto.AuxiliaryOriginalHoursLookDto;
+import com.yuanchu.mom.service.AuxiliaryOriginalHoursService;
+import com.yuanchu.mom.utils.JackSonUtil;
+import com.yuanchu.mom.vo.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.Map;
+
+@Api(tags = "宸ユ椂缁熻-鍘熷宸ユ椂")
+@AllArgsConstructor
+@RestController
+@RequestMapping("/auxiliaryOriginalHours")
+public class AuxiliaryOriginalHoursController {
+
+    @Resource
+    AuxiliaryOriginalHoursService auxiliaryOriginalHoursService;
+
+    @ValueClassify("宸ユ椂绠$悊")
+    @ApiOperation(value = "鏌ヨ鍘熷宸ユ椂")
+    @PostMapping("/selectAuxiliaryOriginalHours")
+    public Result selectAuxiliaryOriginalHours(@RequestBody Map<String, Object> data) throws Exception {
+        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
+        AuxiliaryOriginalHoursLookDto entity = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), AuxiliaryOriginalHoursLookDto.class);
+        return Result.success(auxiliaryOriginalHoursService.selectAuxiliaryOriginalHours(page, entity));
+    }
+}
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 d005b35..f91a216 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
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yuanchu.mom.annotation.ValueClassify;
+import com.yuanchu.mom.dto.AuxiliaryOutputWorkingHoursDto;
 import com.yuanchu.mom.pojo.AuxiliaryOutputWorkingHours;
 import com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay;
 import com.yuanchu.mom.service.AuxiliaryOutputWorkingHoursService;
@@ -17,6 +18,8 @@
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.Map;
 
 /**
@@ -41,8 +44,30 @@
     @PostMapping("/selectAuxiliaryOutputWorkingHours")
     public Result selectAuxiliaryOutputWorkingHours(@RequestBody Map<String, Object> data) throws Exception {
         Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
-        AuxiliaryOutputWorkingHours entity = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), AuxiliaryOutputWorkingHours.class);
+        AuxiliaryOutputWorkingHoursDto entity = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), AuxiliaryOutputWorkingHoursDto.class);
         return Result.success(auxiliaryOutputWorkingHoursService.selectAuxiliaryOutputWorkingHours(page, entity));
     }
 
+    @ValueClassify("宸ユ椂绠$悊")
+    @ApiOperation(value = "缁熻浜ч噺宸ユ椂姹囨�诲拰杈呭姪宸ユ椂姹囨��")
+    @PostMapping("/collectWorkingHours")
+    public Result collectWorkingHours(){
+      return Result.success(auxiliaryOutputWorkingHoursService.collectWorkingHours());
+    }
+
+
+    @ValueClassify("宸ユ椂绠$悊")
+    @ApiOperation(value = "瀵煎嚭")
+    @PostMapping("/exportWorkingHours")
+    public void exportWorkingHours(HttpServletResponse response) throws IOException {
+        auxiliaryOutputWorkingHoursService.exportWorkingHours(response);
+    }
+
+    @ValueClassify("宸ユ椂绠$悊")
+    @ApiOperation(value = "缁勯暱鏉冮檺")
+    @PostMapping("/leader")
+    public Result leader() {
+        return Result.success();
+    }
+
 }
diff --git a/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryWorkingHoursDayController.java b/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryWorkingHoursDayController.java
index cb015bb..471e07f 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryWorkingHoursDayController.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryWorkingHoursDayController.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yuanchu.mom.annotation.ValueClassify;
+import com.yuanchu.mom.dto.AuxiliaryWorkingHoursDayDto;
 import com.yuanchu.mom.pojo.AuxiliaryWorkingHours;
 import com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay;
 import com.yuanchu.mom.service.AuxiliaryWorkingHoursDayService;
@@ -10,6 +11,7 @@
 import com.yuanchu.mom.vo.Result;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import jdk.nashorn.internal.ir.annotations.Ignore;
 import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -42,7 +44,7 @@
     @PostMapping("/selectAuxiliaryWorkingHoursDay")
     public Result selectAuxiliaryWorkingHoursDay(@RequestBody Map<String, Object> data) throws Exception {
         Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
-        AuxiliaryWorkingHoursDay entity = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), AuxiliaryWorkingHoursDay.class);
+        AuxiliaryWorkingHoursDayDto entity = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), AuxiliaryWorkingHoursDayDto.class);
         return Result.success(auxiliaryWorkingHoursDayService.selectAuxiliaryWorkingHoursDay(page, entity));
     }
 
@@ -68,13 +70,20 @@
     }
 
     @ValueClassify("宸ユ椂绠$悊")
-    @ApiOperation(value = "瀹℃牳/鎵瑰噯")
-    @PostMapping("/checkOrApprove")
-    public Result checkOrApprove(Integer id, String state) {
+    @ApiOperation(value = "鎵瑰噯")
+    @PostMapping("/approve")
+    public Result approve(Integer id, String state) {
         return Result.success(auxiliaryWorkingHoursDayService.checkOrApprove(id,state));
     }
 
     @ValueClassify("宸ユ椂绠$悊")
+    @ApiOperation(value = "瀹℃牳")
+    @PostMapping("/check")
+    public Result check(@RequestBody AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay ) {
+        return Result.success(auxiliaryWorkingHoursDayService.updateAuxiliaryWorkingHoursDay(auxiliaryWorkingHoursDay));
+    }
+
+    @ValueClassify("宸ユ椂绠$悊")
     @ApiOperation(value = "缂栬緫")
     @PostMapping("/updateAuxiliaryWorkingHoursDay")
     public Result updateAuxiliaryWorkingHoursDay(@RequestBody AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay) {
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
new file mode 100644
index 0000000..b65cb72
--- /dev/null
+++ b/performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryCorrectionHoursDto.java
@@ -0,0 +1,16 @@
+package com.yuanchu.mom.dto;
+
+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;
+
+@Data
+public class AuxiliaryCorrectionHoursDto extends AuxiliaryCorrectionHours {
+
+    @ApiModelProperty("濮撳悕")
+    @ValueTableShow(2)
+    @ExcelProperty(value = "濮撳悕")
+    private String name;
+}
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
new file mode 100644
index 0000000..de60608
--- /dev/null
+++ b/performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOriginalHoursDto.java
@@ -0,0 +1,182 @@
+package com.yuanchu.mom.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.yuanchu.mom.annotation.ValueTableShow;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+//鍘熷宸ユ椂
+public class AuxiliaryOriginalHoursDto {
+    @ApiModelProperty("濮撳悕")
+    @ValueTableShow(2)
+    @ExcelProperty(value = "濮撳悕")
+    private String name;
+
+    @ApiModelProperty("绫诲瀷")
+    @ValueTableShow(3)
+    @ExcelProperty(value = "绫诲瀷")
+    private String type;
+
+    @ApiModelProperty("1鏃ュ伐鏃�")
+    @ValueTableShow(4)
+    @ExcelProperty(value = "1鏃�")
+    private Double oneHours;
+
+    @ApiModelProperty("2鏃ュ伐鏃�")
+    @ValueTableShow(5)
+    @ExcelProperty(value = "2鏃�")
+    private Double twoHours;
+
+    @ApiModelProperty("3鏃ュ伐鏃�")
+    @ValueTableShow(6)
+    @ExcelProperty(value = "3鏃�")
+    private Double threeHours;
+
+    @ApiModelProperty("4鏃ュ伐鏃�")
+    @ValueTableShow(7)
+    @ExcelProperty(value = "4鏃�")
+    private Double fourHours;
+
+    @ApiModelProperty("5鏃ュ伐鏃�")
+    @ValueTableShow(8)
+    @ExcelProperty(value = "5鏃�")
+    private Double fiveHours;
+
+    @ApiModelProperty("6鏃ュ伐鏃�")
+    @ValueTableShow(9)
+    @ExcelProperty(value = "6鏃�")
+    private Double sixHours;
+
+    @ApiModelProperty("7鏃ュ伐鏃�")
+    @ValueTableShow(10)
+    @ExcelProperty(value = "7鏃�")
+    private Double sevenHours;
+
+    @ApiModelProperty("8鏃ュ伐鏃�")
+    @ValueTableShow(11)
+    @ExcelProperty(value = "8鏃�")
+    private Double eightHours;
+
+    @ApiModelProperty("9鏃ュ伐鏃�")
+    @ValueTableShow(12)
+    @ExcelProperty(value = "9鏃�")
+    private Double nineHours;
+
+    @ApiModelProperty("10鏃ュ伐鏃�")
+    @ValueTableShow(13)
+    @ExcelProperty(value = "10鏃�")
+    private Double tenHours;
+
+    @ApiModelProperty("11鏃ュ伐鏃�")
+    @ValueTableShow(14)
+    @ExcelProperty(value = "11鏃�")
+    private Double elevenHours;
+
+    @ApiModelProperty("12鏃ュ伐鏃�")
+    @ValueTableShow(15)
+    @ExcelProperty(value = "12鏃�")
+    private Double twelveHours;
+
+    @ApiModelProperty("13鏃ュ伐鏃�")
+    @ValueTableShow(16)
+    @ExcelProperty(value = "13鏃�")
+    private Double thirteenHours;
+
+    @ApiModelProperty("14鏃ュ伐鏃�")
+    @ValueTableShow(17)
+    @ExcelProperty(value = "14鏃�")
+    private Double fourteenHours;
+
+    @ApiModelProperty("15鏃ュ伐鏃�")
+    @ValueTableShow(18)
+    @ExcelProperty(value = "15鏃�")
+    private Double fifteenHours;
+
+    @ApiModelProperty("16鏃ュ伐鏃�")
+    @ValueTableShow(19)
+    @ExcelProperty(value = "16鏃�")
+    private Double sixteenHours;
+
+    @ApiModelProperty("17鏃ュ伐鏃�")
+    @ValueTableShow(20)
+    @ExcelProperty(value = "17鏃�")
+    private Double seventeenHours;
+
+    @ApiModelProperty("18鏃ュ伐鏃�")
+    @ValueTableShow(21)
+    @ExcelProperty(value = "18鏃�")
+    private Double eighteenHours;
+
+    @ApiModelProperty("19鏃ュ伐鏃�")
+    @ValueTableShow(22)
+    @ExcelProperty(value = "19鏃�")
+    private Double nineteenHours;
+
+    @ApiModelProperty("20鏃ュ伐鏃�")
+    @ValueTableShow(23)
+    @ExcelProperty(value = "20鏃�")
+    private Double twentyHours;
+
+    @ApiModelProperty("21鏃ュ伐鏃�")
+    @ValueTableShow(24)
+    @ExcelProperty(value = "21鏃�")
+    private Double twentyOneHours;
+
+    @ApiModelProperty("22鏃ュ伐鏃�")
+    @ValueTableShow(25)
+    @ExcelProperty(value = "22鏃�")
+    private Double twentyTwoHours;
+
+    @ApiModelProperty("23鏃ュ伐鏃�")
+    @ValueTableShow(26)
+    @ExcelProperty(value = "23鏃�")
+    private Double twentyThreeHours;
+
+    @ApiModelProperty("24鏃ュ伐鏃�")
+    @ValueTableShow(27)
+    @ExcelProperty(value = "24鏃�")
+    private Double twentyFourHours;
+
+    @ApiModelProperty("25鏃ュ伐鏃�")
+    @ValueTableShow(28)
+    @ExcelProperty(value = "25鏃�")
+    private Double twentyFiveHours;
+
+    @ApiModelProperty("26鏃ュ伐鏃�")
+    @ValueTableShow(29)
+    @ExcelProperty(value = "26鏃�")
+    private Double twentySixHours;
+
+    @ApiModelProperty("27鏃ュ伐鏃�")
+    @ValueTableShow(30)
+    @ExcelProperty(value = "27鏃�")
+    private Double twentySevenHours;
+
+    @ApiModelProperty("28鏃ュ伐鏃�")
+    @ValueTableShow(31)
+    @ExcelProperty(value = "28鏃�")
+    private Double twentyEightHours;
+
+    @ApiModelProperty("29鏃ュ伐鏃�")
+    @ValueTableShow(32)
+    @ExcelProperty(value = "29鏃�")
+    private Double twentyNineHours;
+
+    @ApiModelProperty("30鏃ュ伐鏃�")
+    @ValueTableShow(33)
+    @ExcelProperty(value = "30鏃�")
+    private Double thirtyHours;
+
+    @ApiModelProperty("31鏃ュ伐鏃�")
+    @ValueTableShow(34)
+    @ExcelProperty(value = "31鏃�")
+    private Double thirtyOneHours;
+
+    @ApiModelProperty("鏈堜唤")
+    @ValueTableShow(35)
+    @ExcelProperty(value = "鏈堜唤")
+    private LocalDateTime month;
+}
diff --git a/performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOriginalHoursLookDto.java b/performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOriginalHoursLookDto.java
new file mode 100644
index 0000000..28e80fa
--- /dev/null
+++ b/performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOriginalHoursLookDto.java
@@ -0,0 +1,22 @@
+package com.yuanchu.mom.dto;
+
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.time.LocalDateTime;
+
+@Data
+//鍘熷宸ユ椂缁熻鐨勬煡璇㈡潯浠�
+public class AuxiliaryOriginalHoursLookDto {
+
+    @NotNull
+    private LocalDateTime startTime;//鏈堝垵
+
+    @NotNull
+    private LocalDateTime endTime;//鏈堟湯
+
+    private Integer userId;
+
+    private Integer departId;
+}
diff --git a/performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOutputWorkingHoursDto.java b/performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOutputWorkingHoursDto.java
new file mode 100644
index 0000000..ac6b231
--- /dev/null
+++ b/performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOutputWorkingHoursDto.java
@@ -0,0 +1,16 @@
+package com.yuanchu.mom.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.yuanchu.mom.annotation.ValueTableShow;
+import com.yuanchu.mom.pojo.AuxiliaryOutputWorkingHours;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AuxiliaryOutputWorkingHoursDto extends AuxiliaryOutputWorkingHours  {
+
+    @ApiModelProperty("妫�娴嬩汉")
+    @ValueTableShow(13)
+    @ExcelProperty(value = "妫�娴嬩汉")
+    private String name;
+}
diff --git a/performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryWorkingHoursDayDto.java b/performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryWorkingHoursDayDto.java
new file mode 100644
index 0000000..fe2751e
--- /dev/null
+++ b/performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryWorkingHoursDayDto.java
@@ -0,0 +1,16 @@
+package com.yuanchu.mom.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.yuanchu.mom.annotation.ValueTableShow;
+import com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AuxiliaryWorkingHoursDayDto extends AuxiliaryWorkingHoursDay {
+
+    @ApiModelProperty("濮撳悕")
+    @ValueTableShow(2)
+    @ExcelProperty(value = "濮撳悕")
+    private String name;
+}
diff --git a/performance-server/src/main/java/com/yuanchu/mom/excel/AuxiliaryCorrectionHoursListener.java b/performance-server/src/main/java/com/yuanchu/mom/excel/AuxiliaryCorrectionHoursListener.java
new file mode 100644
index 0000000..0f3573f
--- /dev/null
+++ b/performance-server/src/main/java/com/yuanchu/mom/excel/AuxiliaryCorrectionHoursListener.java
@@ -0,0 +1,41 @@
+package com.yuanchu.mom.excel;
+
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.yuanchu.mom.dto.AuxiliaryCorrectionHoursDto;
+import com.yuanchu.mom.service.AuxiliaryCorrectionHoursService;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class AuxiliaryCorrectionHoursListener extends AnalysisEventListener<AuxiliaryCorrectionHoursDto> {
+
+    private static final int BATCH_COUNT = 1000;
+    List<AuxiliaryCorrectionHoursDto> list = new ArrayList<>();
+
+    private AuxiliaryCorrectionHoursService auxiliaryCorrectionHoursService;
+
+    public AuxiliaryCorrectionHoursListener(AuxiliaryCorrectionHoursService auxiliaryCorrectionHoursService) {
+        this.auxiliaryCorrectionHoursService = auxiliaryCorrectionHoursService;
+    }
+
+    @Override
+    public void invoke(AuxiliaryCorrectionHoursDto data, AnalysisContext analysisContext) {
+        list.add(data);
+        if (list.size() >= BATCH_COUNT) {
+            save();
+            list.clear();
+        }
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+        save();
+    }
+
+
+    private void save() {
+        auxiliaryCorrectionHoursService.importExcel(list);
+    }
+}
diff --git a/performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryCorrectionHoursMapper.java b/performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryCorrectionHoursMapper.java
new file mode 100644
index 0000000..2a8cc79
--- /dev/null
+++ b/performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryCorrectionHoursMapper.java
@@ -0,0 +1,25 @@
+package com.yuanchu.mom.mapper;
+
+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.AuxiliaryCorrectionHoursDto;
+import com.yuanchu.mom.dto.AuxiliaryOutputWorkingHoursDto;
+import com.yuanchu.mom.pojo.AuxiliaryCorrectionHours;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 宸ユ椂缁熻鐨勪慨姝e伐鏃� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2024-05-29 02:38:19
+ */
+public interface AuxiliaryCorrectionHoursMapper extends BaseMapper<AuxiliaryCorrectionHours> {
+
+    IPage<AuxiliaryCorrectionHoursDto> selectAuxiliaryCorrectionHours(Page page, @Param("ew") QueryWrapper<AuxiliaryCorrectionHoursDto> ew, @Param("ids") List<Integer> ids);
+}
diff --git a/performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryOriginalHoursMapper.java b/performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryOriginalHoursMapper.java
new file mode 100644
index 0000000..99e5bea
--- /dev/null
+++ b/performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryOriginalHoursMapper.java
@@ -0,0 +1,15 @@
+package com.yuanchu.mom.mapper;
+
+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.AuxiliaryOriginalHoursDto;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface AuxiliaryOriginalHoursMapper {
+
+
+
+}
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 35f126e..3344457 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
@@ -3,8 +3,16 @@
 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.AuxiliaryOriginalHoursDto;
+import com.yuanchu.mom.dto.AuxiliaryOutputWorkingHoursDto;
+import com.yuanchu.mom.dto.AuxiliaryWorkingHoursDayDto;
 import com.yuanchu.mom.pojo.AuxiliaryOutputWorkingHours;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -16,5 +24,14 @@
  */
 public interface AuxiliaryOutputWorkingHoursMapper extends BaseMapper<AuxiliaryOutputWorkingHours> {
 
-    IPage<AuxiliaryOutputWorkingHours> selectAuxiliaryOutputWorkingHours(Page page, QueryWrapper<AuxiliaryOutputWorkingHours> ew);
+    IPage<AuxiliaryOutputWorkingHoursDto> selectAuxiliaryOutputWorkingHours(Page page, @Param("ew") QueryWrapper<AuxiliaryOutputWorkingHoursDto> ew, @Param("ids") List<Integer> ids);
+
+    //鏌ヨ缁熻宸ユ椂瀵煎嚭鏁版嵁
+    List<AuxiliaryOutputWorkingHoursDto> selectDataByUser(@Param("ids") List<Integer> ids);
+
+    //鏌ヨ璇ユ湀鐨勪骇閲忓伐鏃�
+    List<Map<String, Object>> totalHours(@Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime, @Param("userId") Integer userId, @Param("departId") Integer departId, @Param("ids") List<Integer> ids);
+
+
+    List<AuxiliaryOutputWorkingHours> selectListByIds(@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 2a0cf37..18091a2 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
@@ -3,9 +3,13 @@
 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.AuxiliaryWorkingHoursDayDto;
 import com.yuanchu.mom.pojo.AuxiliaryWorkingHours;
 import com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -17,5 +21,10 @@
  */
 public interface AuxiliaryWorkingHoursDayMapper extends BaseMapper<AuxiliaryWorkingHoursDay> {
 
-    IPage<AuxiliaryWorkingHoursDay> selectAuxiliaryWorkingHoursDay(Page page, QueryWrapper<AuxiliaryWorkingHoursDay> ew);
+    IPage<AuxiliaryWorkingHoursDayDto> selectAuxiliaryWorkingHoursDay(Page page, @Param("ew") QueryWrapper<AuxiliaryWorkingHoursDayDto> ew, @Param("ids") List<Integer> ids);
+
+    //鏌ヨ杈呭姪宸ユ椂瀵煎嚭淇℃伅
+    List<AuxiliaryWorkingHoursDayDto> selectDataByUser(@Param("ids") List<Integer> ids);
+
+    List<AuxiliaryWorkingHoursDay> selectListByIds(@Param("ids") List<Integer> ids);
 }
diff --git a/performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryCorrectionHours.java b/performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryCorrectionHours.java
new file mode 100644
index 0000000..2880070
--- /dev/null
+++ b/performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryCorrectionHours.java
@@ -0,0 +1,221 @@
+package com.yuanchu.mom.pojo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import com.yuanchu.mom.annotation.ValueTableShow;
+import com.yuanchu.mom.common.OrderBy;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 宸ユ椂缁熻鐨勪慨姝e伐鏃�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2024-05-29 02:38:19
+ */
+@Getter
+@Setter
+@TableName("auxiliary_correction_hours")
+@ApiModel(value = "AuxiliaryCorrectionHours瀵硅薄", description = "宸ユ椂缁熻鐨勪慨姝e伐鏃�")
+public class AuxiliaryCorrectionHours extends OrderBy implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty("濮撳悕id")
+    private Integer nameUser;
+
+    @ApiModelProperty("绫诲瀷")
+    @ValueTableShow(3)
+    @ExcelProperty(value = "绫诲瀷")
+    private String type;
+
+    @ApiModelProperty("1鏃ュ伐鏃�")
+    @ValueTableShow(4)
+    @ExcelProperty(value = "1鏃�")
+    private Double oneHours;
+
+    @ApiModelProperty("2鏃ュ伐鏃�")
+    @ValueTableShow(5)
+    @ExcelProperty(value = "2鏃�")
+    private Double twoHours;
+
+    @ApiModelProperty("3鏃ュ伐鏃�")
+    @ValueTableShow(6)
+    @ExcelProperty(value = "3鏃�")
+    private Double threeHours;
+
+    @ApiModelProperty("4鏃ュ伐鏃�")
+    @ValueTableShow(7)
+    @ExcelProperty(value = "4鏃�")
+    private Double fourHours;
+
+    @ApiModelProperty("5鏃ュ伐鏃�")
+    @ValueTableShow(8)
+    @ExcelProperty(value = "5鏃�")
+    private Double fiveHours;
+
+    @ApiModelProperty("6鏃ュ伐鏃�")
+    @ValueTableShow(9)
+    @ExcelProperty(value = "6鏃�")
+    private Double sixHours;
+
+    @ApiModelProperty("7鏃ュ伐鏃�")
+    @ValueTableShow(10)
+    @ExcelProperty(value = "7鏃�")
+    private Double sevenHours;
+
+    @ApiModelProperty("8鏃ュ伐鏃�")
+    @ValueTableShow(11)
+    @ExcelProperty(value = "8鏃�")
+    private Double eightHours;
+
+    @ApiModelProperty("9鏃ュ伐鏃�")
+    @ValueTableShow(12)
+    @ExcelProperty(value = "9鏃�")
+    private Double nineHours;
+
+    @ApiModelProperty("10鏃ュ伐鏃�")
+    @ValueTableShow(13)
+    @ExcelProperty(value = "10鏃�")
+    private Double tenHours;
+
+    @ApiModelProperty("11鏃ュ伐鏃�")
+    @ValueTableShow(14)
+    @ExcelProperty(value = "11鏃�")
+    private Double elevenHours;
+
+    @ApiModelProperty("12鏃ュ伐鏃�")
+    @ValueTableShow(15)
+    @ExcelProperty(value = "12鏃�")
+    private Double twelveHours;
+
+    @ApiModelProperty("13鏃ュ伐鏃�")
+    @ValueTableShow(16)
+    @ExcelProperty(value = "13鏃�")
+    private Double thirteenHours;
+
+    @ApiModelProperty("14鏃ュ伐鏃�")
+    @ValueTableShow(17)
+    @ExcelProperty(value = "14鏃�")
+    private Double fourteenHours;
+
+    @ApiModelProperty("15鏃ュ伐鏃�")
+    @ValueTableShow(18)
+    @ExcelProperty(value = "15鏃�")
+    private Double fifteenHours;
+
+    @ApiModelProperty("16鏃ュ伐鏃�")
+    @ValueTableShow(19)
+    @ExcelProperty(value = "16鏃�")
+    private Double sixteenHours;
+
+    @ApiModelProperty("17鏃ュ伐鏃�")
+    @ValueTableShow(20)
+    @ExcelProperty(value = "17鏃�")
+    private Double seventeenHours;
+
+    @ApiModelProperty("18鏃ュ伐鏃�")
+    @ValueTableShow(21)
+    @ExcelProperty(value = "18鏃�")
+    private Double eighteenHours;
+
+    @ApiModelProperty("19鏃ュ伐鏃�")
+    @ValueTableShow(22)
+    @ExcelProperty(value = "19鏃�")
+    private Double nineteenHours;
+
+    @ApiModelProperty("20鏃ュ伐鏃�")
+    @ValueTableShow(23)
+    @ExcelProperty(value = "20鏃�")
+    private Double twentyHours;
+
+    @ApiModelProperty("21鏃ュ伐鏃�")
+    @ValueTableShow(24)
+    @ExcelProperty(value = "21鏃�")
+    private Double twentyOneHours;
+
+    @ApiModelProperty("22鏃ュ伐鏃�")
+    @ValueTableShow(25)
+    @ExcelProperty(value = "22鏃�")
+    private Double twentyTwoHours;
+
+    @ApiModelProperty("23鏃ュ伐鏃�")
+    @ValueTableShow(26)
+    @ExcelProperty(value = "23鏃�")
+    private Double twentyThreeHours;
+
+    @ApiModelProperty("24鏃ュ伐鏃�")
+    @ValueTableShow(27)
+    @ExcelProperty(value = "24鏃�")
+    private Double twentyFourHours;
+
+    @ApiModelProperty("25鏃ュ伐鏃�")
+    @ValueTableShow(28)
+    @ExcelProperty(value = "25鏃�")
+    private Double twentyFiveHours;
+
+    @ApiModelProperty("26鏃ュ伐鏃�")
+    @ValueTableShow(29)
+    @ExcelProperty(value = "26鏃�")
+    private Double twentySixHours;
+
+    @ApiModelProperty("27鏃ュ伐鏃�")
+    @ValueTableShow(30)
+    @ExcelProperty(value = "27鏃�")
+    private Double twentySevenHours;
+
+    @ApiModelProperty("28鏃ュ伐鏃�")
+    @ValueTableShow(31)
+    @ExcelProperty(value = "28鏃�")
+    private Double twentyEightHours;
+
+    @ApiModelProperty("29鏃ュ伐鏃�")
+    @ValueTableShow(32)
+    @ExcelProperty(value = "29鏃�")
+    private Double twentyNineHours;
+
+    @ApiModelProperty("30鏃ュ伐鏃�")
+    @ValueTableShow(33)
+    @ExcelProperty(value = "30鏃�")
+    private Double thirtyHours;
+
+    @ApiModelProperty("31鏃ュ伐鏃�")
+    @ValueTableShow(34)
+    @ExcelProperty(value = "31鏃�")
+    private Double thirtyOneHours;
+
+    @ApiModelProperty("鏈堜唤")
+    @ValueTableShow(35)
+    @ExcelProperty(value = "鏈堜唤")
+    private LocalDateTime month;
+
+    @ApiModelProperty("鍒涘缓鏃堕棿")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @ApiModelProperty("淇敼鏃堕棿")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty("鍒涘缓浜篿d")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+    @ApiModelProperty("淇敼浜篿d")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Integer updateUser;
+}
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 bfb71ba..54c7d01 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
@@ -1,5 +1,6 @@
 package com.yuanchu.mom.pojo;
 
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
@@ -8,7 +9,9 @@
 import java.io.Serializable;
 import java.time.LocalDateTime;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yuanchu.mom.annotation.ValueTableShow;
+import com.yuanchu.mom.common.OrderBy;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
@@ -26,67 +29,77 @@
 @Setter
 @TableName("auxiliary_output_working_hours")
 @ApiModel(value = "AuxiliaryOutputWorkingHours瀵硅薄", description = "鏃ュ伐鏃剁鐞嗙殑浜ч噺宸ユ椂")
-public class AuxiliaryOutputWorkingHours implements Serializable {
-
-    private static final long serialVersionUID = 1L;
+public class AuxiliaryOutputWorkingHours extends OrderBy implements Serializable {
 
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
     @ApiModelProperty("妫�娴嬮」鐩�")
+    @ExcelProperty(value = "妫�娴嬮」鐩�")
     @ValueTableShow(2)
     private String inspectProject;
 
     @ApiModelProperty("鍔犵彮濮旀墭鍗曞彿")
+    @ExcelProperty(value = "鍔犵彮濮旀墭鍗曞彿")
     @ValueTableShow(3)
     private String overtimeOrderNo;
 
     @ApiModelProperty("鍔犵彮宸ユ椂")
+    @ExcelProperty(value = "鍔犵彮宸ユ椂")
     @ValueTableShow(4)
     private Double overtimeWorkTime;
 
     @ApiModelProperty("鍔犵彮鏁伴噺")
+    @ExcelProperty(value = "鍔犵彮鏁伴噺")
     @ValueTableShow(5)
     private Integer overtimeAmount;
 
     @ApiModelProperty("闈炲姞鐝鎵樺崟鍙�")
+    @ExcelProperty(value = "闈炲姞鐝鎵樺崟鍙�")
     @ValueTableShow(6)
     private String orderNo;
 
     @ApiModelProperty("闈炲姞鐝伐鏃�")
+    @ExcelProperty(value = "闈炲姞鐝伐鏃�")
     @ValueTableShow(7)
     private Double workTime;
 
     @ApiModelProperty("闈炲姞鐝暟閲�")
+    @ExcelProperty(value = "闈炲姞鐝暟閲�")
     @ValueTableShow(8)
     private Integer amount;
 
     @ApiModelProperty("浜ч噺宸ユ椂")
+    @ExcelProperty(value = "浜ч噺宸ユ椂")
     @ValueTableShow(9)
     private Double outputWorkTime;
 
     @ApiModelProperty("鏃ユ湡")
+    @ExcelProperty(value = "鏃ユ湡")
     @ValueTableShow(10)
-    private LocalDateTime dateTime;
+    private String dateTime;
 
     @ApiModelProperty("鍛ㄦ")
+    @ExcelProperty(value = "鍛ㄦ")
     @ValueTableShow(11)
-    private Integer week;
+    private String week;
 
     @ApiModelProperty("鏄熸湡")
+    @ExcelProperty(value = "鏄熸湡")
     @ValueTableShow(12)
     private String weekDay;
 
-    @ApiModelProperty("妫�娴嬩汉")
-    @ValueTableShow(13)
-    private String check;
+    @ApiModelProperty("妫�娴嬩汉id")
+    private Integer check;
 
     @ApiModelProperty("鍒涘缓鏃堕棿")
     @TableField(fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime createTime;
 
     @ApiModelProperty("淇敼鏃堕棿")
     @TableField(fill = FieldFill.INSERT_UPDATE)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime updateTime;
 
     @ApiModelProperty("鍒涘缓浜篿d")
diff --git a/performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryWorkingHoursDay.java b/performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryWorkingHoursDay.java
index 4afa389..88eb419 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryWorkingHoursDay.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryWorkingHoursDay.java
@@ -1,5 +1,6 @@
 package com.yuanchu.mom.pojo;
 
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
@@ -10,8 +11,10 @@
 import java.time.LocalDateTime;
 
 import com.yuanchu.mom.annotation.ValueTableShow;
+import com.yuanchu.mom.common.OrderBy;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -23,74 +26,84 @@
  * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
  * @since 2024-05-28 02:22:19
  */
-@Getter
-@Setter
+@Data
 @TableName("auxiliary_working_hours_day")
 @ApiModel(value = "AuxiliaryWorkingHoursDay瀵硅薄", description = "鏃ュ伐鏃剁鐞嗙殑杈呭姪宸ユ椂")
-public class AuxiliaryWorkingHoursDay implements Serializable {
-
-    private static final long serialVersionUID = 1L;
+public class AuxiliaryWorkingHoursDay extends OrderBy implements Serializable {
 
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
-    @ApiModelProperty("濮撳悕")
-    @ValueTableShow(2)
-    private String name;
+    @ApiModelProperty("濮撳悕id")
+    private Integer nameUser;
 
     @ApiModelProperty("缂栧彿")
+    @ExcelProperty(value = "缂栧彿")
     @ValueTableShow(3)
     private String number;
 
     @ApiModelProperty("杈呭姪椤圭洰鍚嶇О")
+    @ExcelProperty(value = "杈呭姪椤圭洰鍚嶇О")
     @ValueTableShow(4)
     private String auxiliaryProject;
 
     @ApiModelProperty("鏍稿噯宸ユ椂")
+    @ExcelProperty(value = "鏍稿噯宸ユ椂")
     @ValueTableShow(5)
     private Double approvedWorkingHour;
 
     @ApiModelProperty("鏁伴噺")
+    @ExcelProperty(value = "鏁伴噺")
     @ValueTableShow(6)
     private Integer amount;
 
     @ApiModelProperty("杈呭姪宸ユ椂")
+    @ExcelProperty(value = "杈呭姪宸ユ椂")
     @ValueTableShow(7)
     private Double nonproductiveTime;
 
     @ApiModelProperty("杈呭姪璇存槑")
+    @ExcelProperty(value = "杈呭姪璇存槑")
     @ValueTableShow(8)
     private String remarks;
 
     @ApiModelProperty("澶嶆牳浜�")
+    @ExcelProperty(value = "澶嶆牳浜�")
     @ValueTableShow(9)
     private String reviewer;
 
     @ApiModelProperty("澶嶆牳鏁伴噺")
+    @ExcelProperty(value = "澶嶆牳鏁伴噺")
     @ValueTableShow(10)
     private Integer reviewerNumber;
 
     @ApiModelProperty("澶嶆牳宸ユ椂")
+    @ExcelProperty(value = "澶嶆牳宸ユ椂")
     @ValueTableShow(11)
     private Double reviewerNonproductiveTime;
 
     @ApiModelProperty("澶嶆牳璇存槑")
+    @ExcelProperty(value = "澶嶆牳璇存槑")
     @ValueTableShow(12)
     private String reviewerRemark;
 
     @ApiModelProperty("骞�")
+    @ExcelProperty(value = "骞�")
     @ValueTableShow(13)
     private String year;
 
     @ApiModelProperty("鐝")
+    @ExcelProperty(value = "鐝")
     @ValueTableShow(14)
     private String shift;
 
     @ApiModelProperty("鍛ㄦ")
+    @ExcelProperty(value = "鍛ㄦ")
     @ValueTableShow(15)
-    private Integer week;
+    private String week;
 
     @ApiModelProperty("鏄熸湡")
+    @ExcelProperty(value = "鏄熸湡")
     @ValueTableShow(16)
     private String weekDay;
 
@@ -112,11 +125,12 @@
     private Integer updateUser;
 
     @ApiModelProperty("鐘舵��")
+    @ExcelProperty(value = "鐘舵��")
     @ValueTableShow(18)
     private String state;
 
     @ApiModelProperty("鏃ユ湡")
-    @TableLogic
+    @ExcelProperty(value = "鏃ユ湡")
     @ValueTableShow(19)
-    private LocalDateTime dateTime;
+    private String dateTime;
 }
diff --git a/performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryCorrectionHoursService.java b/performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryCorrectionHoursService.java
new file mode 100644
index 0000000..5aba180
--- /dev/null
+++ b/performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryCorrectionHoursService.java
@@ -0,0 +1,28 @@
+package com.yuanchu.mom.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.dto.AuxiliaryCorrectionHoursDto;
+import com.yuanchu.mom.pojo.AuxiliaryCorrectionHours;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 宸ユ椂缁熻鐨勪慨姝e伐鏃� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2024-05-29 02:38:19
+ */
+public interface AuxiliaryCorrectionHoursService extends IService<AuxiliaryCorrectionHours> {
+
+    Map<String, Object>  selectAuxiliaryCorrectionHours(Page page, AuxiliaryCorrectionHoursDto auxiliaryCorrectionHoursDto);
+
+    /**
+     * 瀵煎叆涓婁紶
+     * @param list
+     */
+    void importExcel(List<AuxiliaryCorrectionHoursDto> list);
+}
diff --git a/performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryOriginalHoursService.java b/performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryOriginalHoursService.java
new file mode 100644
index 0000000..8053d93
--- /dev/null
+++ b/performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryOriginalHoursService.java
@@ -0,0 +1,12 @@
+package com.yuanchu.mom.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.dto.AuxiliaryOriginalHoursDto;
+import com.yuanchu.mom.dto.AuxiliaryOriginalHoursLookDto;
+
+import java.util.Map;
+
+public interface AuxiliaryOriginalHoursService {
+
+    Map<String, Object> selectAuxiliaryOriginalHours(Page page, AuxiliaryOriginalHoursLookDto auxiliaryOriginalHoursLookDto);
+}
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 fb40392..4843e27 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
@@ -2,9 +2,12 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.dto.AuxiliaryOutputWorkingHoursDto;
 import com.yuanchu.mom.pojo.AuxiliaryOutputWorkingHours;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.Map;
 
 /**
@@ -17,5 +20,18 @@
  */
 public interface AuxiliaryOutputWorkingHoursService extends IService<AuxiliaryOutputWorkingHours> {
 
-    Map<String, Object> selectAuxiliaryOutputWorkingHours(Page page, AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours);
+    Map<String, Object> selectAuxiliaryOutputWorkingHours(Page page, AuxiliaryOutputWorkingHoursDto auxiliaryOutputWorkingHoursDto);
+
+    /**
+     * 缁熻浜ч噺宸ユ椂姹囨�诲拰杈呭姪宸ユ椂姹囨��
+     * @return
+     */
+    Map<String,Object> collectWorkingHours();
+
+    /**
+     * 瀵煎嚭
+     * @param response
+     * @throws IOException
+     */
+    void exportWorkingHours(HttpServletResponse response)throws IOException;
 }
diff --git a/performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryWorkingHoursDayService.java b/performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryWorkingHoursDayService.java
index 8f3c971..7c5804e 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryWorkingHoursDayService.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryWorkingHoursDayService.java
@@ -1,6 +1,7 @@
 package com.yuanchu.mom.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.dto.AuxiliaryWorkingHoursDayDto;
 import com.yuanchu.mom.pojo.AuxiliaryWorkingHours;
 import com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -18,7 +19,7 @@
  */
 public interface AuxiliaryWorkingHoursDayService extends IService<AuxiliaryWorkingHoursDay> {
 
-    Map<String, Object> selectAuxiliaryWorkingHoursDay(Page page, AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay);
+    Map<String, Object> selectAuxiliaryWorkingHoursDay(Page page, AuxiliaryWorkingHoursDayDto auxiliaryWorkingHoursDayDto);
 
     int insertAuxiliaryWorkingHoursDay(AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay);
 
diff --git a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryCorrectionHoursServiceImpl.java b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryCorrectionHoursServiceImpl.java
new file mode 100644
index 0000000..19bcdcf
--- /dev/null
+++ b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryCorrectionHoursServiceImpl.java
@@ -0,0 +1,103 @@
+package com.yuanchu.mom.service.impl;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.common.GetLook;
+import com.yuanchu.mom.common.PrintChina;
+import com.yuanchu.mom.dto.AuxiliaryCorrectionHoursDto;
+import com.yuanchu.mom.dto.AuxiliaryOutputWorkingHoursDto;
+import com.yuanchu.mom.mapper.PowerMapper;
+import com.yuanchu.mom.mapper.UserMapper;
+import com.yuanchu.mom.pojo.AuxiliaryCorrectionHours;
+import com.yuanchu.mom.mapper.AuxiliaryCorrectionHoursMapper;
+import com.yuanchu.mom.pojo.Power;
+import com.yuanchu.mom.pojo.User;
+import com.yuanchu.mom.service.AuxiliaryCorrectionHoursService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yuanchu.mom.utils.QueryWrappers;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 宸ユ椂缁熻鐨勪慨姝e伐鏃� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2024-05-29 02:38:19
+ */
+@Service
+public class AuxiliaryCorrectionHoursServiceImpl extends ServiceImpl<AuxiliaryCorrectionHoursMapper, AuxiliaryCorrectionHours> implements AuxiliaryCorrectionHoursService {
+
+    @Resource
+    AuxiliaryCorrectionHoursMapper auxiliaryCorrectionHoursMapper;
+
+    @Resource
+    GetLook getLook;
+
+    @Resource
+    UserMapper userMapper;
+
+    @Resource
+    PowerMapper powerMapper;
+
+    @Override
+    public Map<String, Object> selectAuxiliaryCorrectionHours(Page page, AuxiliaryCorrectionHoursDto auxiliaryCorrectionHoursDto) {
+        Map<String, Object> map = new HashMap<>();
+        List<Integer> ids = null;
+        map.put("head", PrintChina.printChina(AuxiliaryCorrectionHoursDto.class));
+        //鍒ゆ柇缁勯暱,缁勫憳,绠$悊鍛樻潈闄�
+        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectAuxiliaryCorrectionHours");
+        User user = userMapper.selectById(map1.get("userId"));
+        Integer roleId = user.getRoleId();
+        Power power = powerMapper.selectOne(Wrappers.<Power>lambdaQuery().eq(Power::getRoleId, roleId).eq(Power::getMenuMethod, "leader"));
+        if (ObjectUtils.isEmpty(power)) {
+            //涓嶆槸缁勯暱
+            if (map1.get("look") == 1) {
+                //鏄粍鍛�
+                auxiliaryCorrectionHoursDto.setNameUser(map1.get("userId"));
+            } else {
+                //绠$悊鍛�(涓嶆坊鍔犻檺鍒舵潯浠舵墍鏈変汉閮藉彲浠ョ湅)
+            }
+        } else {
+            //鏄粍闀�
+            //鏌ヨ缁勯暱涓嬬殑缁勫憳
+            List<User> users = userMapper.selectList(Wrappers.<User>lambdaQuery().like(User::getDepartLimsId, user.getDepartLimsId()));
+            if (ObjectUtils.isNotEmpty(users)) {
+                ids = users.stream().map(User::getId).distinct().collect(Collectors.toList());
+            }
+        }
+        map.put("body", auxiliaryCorrectionHoursMapper.selectAuxiliaryCorrectionHours(page, QueryWrappers.queryWrappers(auxiliaryCorrectionHoursDto),ids));
+        return map;
+    }
+
+    //瀵煎叆涓婁紶
+    @Override
+    public void importExcel(List<AuxiliaryCorrectionHoursDto> list) {
+        if (CollectionUtil.isEmpty(list)) {
+            return;
+        }
+        List<AuxiliaryCorrectionHours> auxiliaryCorrectionHoursList = new ArrayList<>();
+        for (AuxiliaryCorrectionHoursDto auxiliaryCorrectionHoursDto : list) {
+            AuxiliaryCorrectionHours auxiliaryCorrectionHours = new AuxiliaryCorrectionHours();
+            User user = userMapper.selectOne(Wrappers.<User>lambdaQuery().eq(User::getName, auxiliaryCorrectionHoursDto.getName()));
+            if (ObjectUtils.isEmpty(user)){
+                throw new RuntimeException("绯荤粺娌℃湁鏌ュ埌"+auxiliaryCorrectionHoursDto.getName()+"杩欎釜鐢ㄦ埛淇℃伅!");
+            }
+            BeanUtils.copyProperties(auxiliaryCorrectionHoursDto,auxiliaryCorrectionHours);
+            auxiliaryCorrectionHours.setNameUser(user.getId());
+            auxiliaryCorrectionHoursList.add(auxiliaryCorrectionHours);
+        }
+        //鎵归噺鏂板
+        saveBatch(auxiliaryCorrectionHoursList);
+    }
+}
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
new file mode 100644
index 0000000..d1b5aa5
--- /dev/null
+++ b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java
@@ -0,0 +1,91 @@
+package com.yuanchu.mom.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.common.GetLook;
+import com.yuanchu.mom.common.PrintChina;
+import com.yuanchu.mom.dto.AuxiliaryCorrectionHoursDto;
+import com.yuanchu.mom.dto.AuxiliaryOriginalHoursDto;
+import com.yuanchu.mom.dto.AuxiliaryOriginalHoursLookDto;
+import com.yuanchu.mom.mapper.*;
+import com.yuanchu.mom.pojo.Power;
+import com.yuanchu.mom.pojo.User;
+import com.yuanchu.mom.service.AuxiliaryOriginalHoursService;
+import com.yuanchu.mom.utils.QueryWrappers;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+@Service
+public class AuxiliaryOriginalHoursServiceImpl implements AuxiliaryOriginalHoursService {
+
+    @Resource
+    GetLook getLook;
+
+    @Resource
+    UserMapper userMapper;
+
+    @Resource
+    PowerMapper powerMapper;
+
+    @Resource
+    AuxiliaryOriginalHoursMapper auxiliaryOriginalHoursMapper;
+
+    @Resource
+    AuxiliaryOutputWorkingHoursMapper auxiliaryOutputWorkingHoursMapper;
+
+    @Resource
+    AuxiliaryWorkingHoursDayMapper auxiliaryWorkingHoursDayMapper;
+
+    @Override
+    public Map<String, Object> selectAuxiliaryOriginalHours(Page page, AuxiliaryOriginalHoursLookDto auxiliaryOriginalHoursLookDto) {
+        Map<String, Object> map = new HashMap<>();
+        List<Integer> ids = null;
+        map.put("head", PrintChina.printChina(AuxiliaryCorrectionHoursDto.class));
+        //鍒ゆ柇缁勯暱,缁勫憳,绠$悊鍛樻潈闄�
+        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectAuxiliaryOriginalHours");
+        User user = userMapper.selectById(map1.get("userId"));
+        Integer roleId = user.getRoleId();
+        Power power = powerMapper.selectOne(Wrappers.<Power>lambdaQuery().eq(Power::getRoleId, roleId).eq(Power::getMenuMethod, "leader"));
+        if (ObjectUtils.isEmpty(power)) {
+            //涓嶆槸缁勯暱
+            if (map1.get("look") == 1) {
+                //鏄粍鍛�
+                ids.add(map1.get("userId"));
+            } else {
+                //绠$悊鍛�(涓嶆坊鍔犻檺鍒舵潯浠舵墍鏈変汉閮藉彲浠ョ湅)
+            }
+        } else {
+            //鏄粍闀�
+            //鏌ヨ缁勯暱涓嬬殑缁勫憳
+            List<User> users = userMapper.selectList(Wrappers.<User>lambdaQuery().like(User::getDepartLimsId, user.getDepartLimsId()));
+            if (ObjectUtils.isNotEmpty(users)) {
+                ids = users.stream().map(User::getId).distinct().collect(Collectors.toList());
+            }
+        }
+        IPage<AuxiliaryOriginalHoursDto> originalHoursDtoIPage = new Page<>();
+        originalHoursDtoIPage.setSize(page.getSize());
+        originalHoursDtoIPage.setCurrent(page.getCurrent());
+        List<AuxiliaryOriginalHoursDto> auxiliaryOriginalHoursDtos = null;
+        //浜ч噺宸ユ椂
+        List<Map<String, Object>> maps = auxiliaryOutputWorkingHoursMapper.totalHours(auxiliaryOriginalHoursLookDto.getStartTime(), auxiliaryOriginalHoursLookDto.getEndTime(), auxiliaryOriginalHoursLookDto.getUserId(), auxiliaryOriginalHoursLookDto.getDepartId(), ids);
+        Map<Object, Map<Object, Double>> collect = maps.stream().collect(
+                Collectors.groupingBy(objmap -> objmap.get("name"),
+                        Collectors.groupingBy(objmap -> objmap.get("month"),
+                                Collectors.summingDouble(objmap -> Double.parseDouble(objmap.get("output_work_time").toString())))));
+
+        //杈呭姪宸ユ椂
+        //杈呭姪宸ユ椂
+        //鍔犵彮宸ユ椂
+        //鎬诲伐鏃�
+        originalHoursDtoIPage.setRecords(auxiliaryOriginalHoursDtos);
+        map.put("body", originalHoursDtoIPage);
+        return map;
+    }
+}
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 07f0be7..891c9ef 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
@@ -1,18 +1,37 @@
 package com.yuanchu.mom.service.impl;
 
+import com.alibaba.excel.EasyExcel;
+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.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.common.GetLook;
 import com.yuanchu.mom.common.PrintChina;
+import com.yuanchu.mom.dto.AuxiliaryOutputWorkingHoursDto;
+import com.yuanchu.mom.dto.AuxiliaryWorkingHoursDayDto;
+import com.yuanchu.mom.mapper.AuxiliaryWorkingHoursDayMapper;
+import com.yuanchu.mom.mapper.PowerMapper;
+import com.yuanchu.mom.mapper.UserMapper;
 import com.yuanchu.mom.pojo.AuxiliaryOutputWorkingHours;
 import com.yuanchu.mom.mapper.AuxiliaryOutputWorkingHoursMapper;
 import com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay;
+import com.yuanchu.mom.pojo.Power;
+import com.yuanchu.mom.pojo.User;
 import com.yuanchu.mom.service.AuxiliaryOutputWorkingHoursService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yuanchu.mom.utils.QueryWrappers;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.net.URLEncoder;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -28,11 +47,171 @@
     @Resource
     AuxiliaryOutputWorkingHoursMapper auxiliaryOutputWorkingHoursMapper;
 
+    @Resource
+    GetLook getLook;
+
+    @Resource
+    AuxiliaryWorkingHoursDayMapper auxiliaryWorkingHoursDayMapper;
+
+    @Resource
+    UserMapper userMapper;
+
+    @Resource
+    PowerMapper powerMapper;
+
     @Override
-    public Map<String, Object> selectAuxiliaryOutputWorkingHours(Page page, AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours) {
+    public Map<String, Object> selectAuxiliaryOutputWorkingHours(Page page, AuxiliaryOutputWorkingHoursDto auxiliaryOutputWorkingHoursDto) {
+        String dates = auxiliaryOutputWorkingHoursDto.getDateTime();
+        String week = auxiliaryOutputWorkingHoursDto.getWeek();
+        auxiliaryOutputWorkingHoursDto.setDateTime(null);
+        auxiliaryOutputWorkingHoursDto.setWeek(null);
         Map<String, Object> map = new HashMap<>();
-        map.put("head", PrintChina.printChina(AuxiliaryOutputWorkingHours.class));
-        map.put("body", auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, QueryWrappers.queryWrappers(auxiliaryOutputWorkingHours)));
+        List<Integer> ids = null;
+        map.put("head", PrintChina.printChina(AuxiliaryOutputWorkingHoursDto.class));
+        //鍒ゆ柇缁勯暱,缁勫憳,绠$悊鍛樻潈闄�
+        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectAuxiliaryOutputWorkingHours");
+        User user = userMapper.selectById(map1.get("userId"));
+        Integer roleId = user.getRoleId();
+        Power power = powerMapper.selectOne(Wrappers.<Power>lambdaQuery().eq(Power::getRoleId, roleId).eq(Power::getMenuMethod, "leader"));
+        if (ObjectUtils.isEmpty(power)) {
+            //涓嶆槸缁勯暱
+            if (map1.get("look") == 1) {
+                //鏄粍鍛�
+                auxiliaryOutputWorkingHoursDto.setCheck(map1.get("userId"));
+            } else {
+                //绠$悊鍛�(涓嶆坊鍔犻檺鍒舵潯浠舵墍鏈変汉閮藉彲浠ョ湅)
+            }
+        } else {
+            //鏄粍闀�
+            //鏌ヨ缁勯暱涓嬬殑缁勫憳
+            List<User> users = userMapper.selectList(Wrappers.<User>lambdaQuery().like(User::getDepartLimsId, user.getDepartLimsId()));
+            if (ObjectUtils.isNotEmpty(users)) {
+                ids = users.stream().map(User::getId).distinct().collect(Collectors.toList());
+            }
+        }
+        if (ObjectUtils.isNotEmpty(dates)) {
+            String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
+            if (ObjectUtils.isNotEmpty(week)){
+                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));
+            }
+            map.put("body", auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto).ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59"), ids));
+        } else {
+            map.put("body", auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto), ids));
+        }
         return map;
     }
+
+    //缁熻浜ч噺宸ユ椂姹囨�诲拰杈呭姪宸ユ椂姹囨��
+    @Override
+    public Map<String, Object> collectWorkingHours() {
+        Map<String, Object> map = new HashMap<>();
+        Double sumOutputWorkTime = 0.0;
+        Double sumApprovedWorkingHour = 0.0;
+        List<Integer> ids = null;
+        //鍒ゆ柇鏄粍闀胯繕鏄粍鍛樿繕鏄鐞嗗憳
+        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectAuxiliaryOutputWorkingHours");
+        User user = userMapper.selectById(map1.get("userId"));
+        Integer roleId = user.getRoleId();
+        Power power = powerMapper.selectOne(Wrappers.<Power>lambdaQuery().eq(Power::getRoleId, roleId).eq(Power::getMenuMethod, "leader"));
+        if (ObjectUtils.isEmpty(power)) {
+            //涓嶆槸缁勯暱
+            if (map1.get("look") == 1) {
+                //鏄粍鍛�
+                ids.add(map1.get("userId"));
+            } else {
+                //绠$悊鍛�(涓嶆坊鍔犻檺鍒舵潯浠舵墍鏈変汉閮藉彲浠ョ湅)
+            }
+        } else {
+            //鏄粍闀�
+            //鏌ヨ缁勯暱涓嬬殑缁勫憳
+            List<User> users = userMapper.selectList(Wrappers.<User>lambdaQuery().like(User::getDepartLimsId, user.getDepartLimsId()));
+            if (ObjectUtils.isNotEmpty(users)) {
+                ids = users.stream().map(User::getId).distinct().collect(Collectors.toList());
+            }
+        }
+        //缁熻褰撳墠鐢ㄦ埛鐨勪骇鍝佸伐鏃�
+        List<AuxiliaryOutputWorkingHours> auxiliaryOutputWorkingHours = auxiliaryOutputWorkingHoursMapper.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());
+                }
+            }
+            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();
+            }
+        }
+        map.put("杈呭姪宸ユ椂姹囨��", sumApprovedWorkingHour);
+        return map;
+    }
+
+    //瀵煎嚭
+    @Override
+    public void exportWorkingHours(HttpServletResponse response) throws IOException {
+        List<AuxiliaryOutputWorkingHoursDto> auxiliaryOutputWorkingHoursDtos = null;
+        List<AuxiliaryWorkingHoursDayDto> auxiliaryWorkingHoursDayDtos = null;
+        List<Integer> ids = null;
+        //鍒ゆ柇鏄粍闀胯繕鏄粍鍛樿繕鏄鐞嗗憳
+        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectAuxiliaryOutputWorkingHours");
+        User user = userMapper.selectById(map1.get("userId"));
+        Integer roleId = user.getRoleId();
+        Power power = powerMapper.selectOne(Wrappers.<Power>lambdaQuery().eq(Power::getRoleId, roleId).eq(Power::getMenuMethod, "leader"));
+        if (ObjectUtils.isEmpty(power)) {
+            //涓嶆槸缁勯暱
+            if (map1.get("look") == 1) {
+                //鏄粍鍛�
+                ids.add(map1.get("userId"));
+            } else {
+                //绠$悊鍛�(涓嶆坊鍔犻檺鍒舵潯浠舵墍鏈変汉閮藉彲浠ョ湅)
+            }
+        } else {
+            //鏄粍闀�
+            //鏌ヨ缁勯暱涓嬬殑缁勫憳
+            List<User> users = userMapper.selectList(Wrappers.<User>lambdaQuery().like(User::getDepartLimsId, user.getDepartLimsId()));
+            if (ObjectUtils.isNotEmpty(users)) {
+                ids = users.stream().map(User::getId).distinct().collect(Collectors.toList());
+            }
+        }
+
+        //鏌ヨ杈呭姪宸ユ椂
+        auxiliaryWorkingHoursDayDtos = auxiliaryWorkingHoursDayMapper.selectDataByUser(ids);
+//        if (auxiliaryWorkingHoursDayDtos == null || auxiliaryWorkingHoursDayDtos.size() == 0) {
+//            throw new RuntimeException("鏆傛棤鏁版嵁");
+//        }
+        //鏌ヨ缁熻宸ユ椂
+        auxiliaryOutputWorkingHoursDtos = auxiliaryOutputWorkingHoursMapper.selectDataByUser(ids);
+//        if (auxiliaryOutputWorkingHoursDtos == null || auxiliaryOutputWorkingHoursDtos.size() == 0) {
+//            throw new RuntimeException("鏆傛棤鏁版嵁");
+//        }
+        response.setContentType("application/vnd.ms-excel");
+        response.setCharacterEncoding("UTF-8");
+        // 杩欓噷URLEncoder.encode鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴
+        String fileName = URLEncoder.encode("宸ユ椂绠$悊瀵煎嚭", "UTF-8");
+        response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
+        try {
+            // 鏂板缓ExcelWriter
+            ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
+
+            WriteSheet mainSheet = EasyExcel.writerSheet(0, "杈呭姪宸ユ椂瀵煎嚭").head(AuxiliaryWorkingHoursDayDto.class).build();
+            excelWriter.write(auxiliaryWorkingHoursDayDtos, mainSheet);
+
+            WriteSheet mainSheet1 = EasyExcel.writerSheet(1, "浜ч噺宸ユ椂瀵煎嚭").head(AuxiliaryOutputWorkingHoursDto.class).build();
+            excelWriter.write(auxiliaryOutputWorkingHoursDtos, mainSheet1);
+            // 鍏抽棴娴�
+            excelWriter.finish();
+        } catch (IOException e) {
+            throw new RuntimeException("瀵煎嚭澶辫触");
+        }
+    }
 }
diff --git a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryWorkingHoursDayServiceImpl.java b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryWorkingHoursDayServiceImpl.java
index 4255b7c..954addc 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryWorkingHoursDayServiceImpl.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryWorkingHoursDayServiceImpl.java
@@ -5,15 +5,10 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yuanchu.mom.common.GetLook;
 import com.yuanchu.mom.common.PrintChina;
+import com.yuanchu.mom.dto.AuxiliaryWorkingHoursDayDto;
 import com.yuanchu.mom.exception.ErrorException;
-import com.yuanchu.mom.mapper.AuxiliaryWorkingHoursMapper;
-import com.yuanchu.mom.mapper.PerformanceShiftMapper;
-import com.yuanchu.mom.mapper.UserMapper;
-import com.yuanchu.mom.pojo.AuxiliaryWorkingHours;
-import com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay;
-import com.yuanchu.mom.mapper.AuxiliaryWorkingHoursDayMapper;
-import com.yuanchu.mom.pojo.PerformanceShift;
-import com.yuanchu.mom.pojo.User;
+import com.yuanchu.mom.mapper.*;
+import com.yuanchu.mom.pojo.*;
 import com.yuanchu.mom.service.AuxiliaryWorkingHoursDayService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yuanchu.mom.utils.MyUtil;
@@ -24,7 +19,9 @@
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -50,13 +47,59 @@
     UserMapper userMapper;
 
     @Resource
+    RoleMapper roleMapper;
+
+    @Resource
+    PowerMapper powerMapper;
+
+    @Resource
     PerformanceShiftMapper performanceShiftMapper;
 
     @Override
-    public Map<String, Object> selectAuxiliaryWorkingHoursDay(Page page, AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay) {
-        Map<String, Object> map = new HashMap<>();
-        map.put("head", PrintChina.printChina(AuxiliaryWorkingHoursDay.class));
-        map.put("body", auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, QueryWrappers.queryWrappers(auxiliaryWorkingHoursDay)));
+    public Map<String, Object> selectAuxiliaryWorkingHoursDay(Page page, AuxiliaryWorkingHoursDayDto auxiliaryWorkingHoursDayDto) {
+        String dates = auxiliaryWorkingHoursDayDto.getDateTime();
+        String week = auxiliaryWorkingHoursDayDto.getWeek();
+        auxiliaryWorkingHoursDayDto.setDateTime(null);
+        auxiliaryWorkingHoursDayDto.setWeek(null);
+            Map<String, Object> map = new HashMap<>();
+            List<Integer> ids = null;
+            map.put("head", PrintChina.printChina(AuxiliaryWorkingHoursDayDto.class));
+            //鍒ゆ柇缁勯暱,缁勫憳,绠$悊鍛樻潈闄�
+            Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectAuxiliaryWorkingHoursDay");
+            User user = userMapper.selectById(map1.get("userId"));
+            Integer roleId = user.getRoleId();
+            Power power = powerMapper.selectOne(Wrappers.<Power>lambdaQuery().eq(Power::getRoleId, roleId).eq(Power::getMenuMethod, "leader"));
+            if (ObjectUtils.isEmpty(power)) {
+                //涓嶆槸缁勯暱
+                if (map1.get("look") == 1) {
+                    //鏄粍鍛�
+                    auxiliaryWorkingHoursDayDto.setNameUser(map1.get("userId"));
+                } else {
+                    //绠$悊鍛�(涓嶆坊鍔犻檺鍒舵潯浠舵墍鏈変汉閮藉彲浠ョ湅)
+                }
+            } else {
+                //鏄粍闀�
+                //鏌ヨ缁勫憳
+                List<User> users = userMapper.selectList(Wrappers.<User>lambdaQuery().like(User::getDepartLimsId, user.getDepartLimsId()));
+                if (ObjectUtils.isNotEmpty(users)) {
+                    ids = users.stream().map(User::getId).distinct().collect(Collectors.toList());
+                }
+            }
+        if (ObjectUtils.isNotEmpty(dates)) {
+            String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
+            if (ObjectUtils.isNotEmpty(week)) {
+                String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
+                map.put("body", auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page,
+                        QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto)
+                                .ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59")
+                                .ge("week", weeks[0]).le("week", weeks[1] ), ids));
+            } else {
+                map.put("body", auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto).ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59"), ids));
+            }
+        }
+        else {
+            map.put("body", auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto), ids));
+        }
         return map;
     }
 
@@ -77,8 +120,7 @@
     @Override
     public int insertAuxiliaryWorkingHoursDay(AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay) {
         Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
-        User user = userMapper.selectById(userId);
-        auxiliaryWorkingHoursDay.setName(user.getName());//濮撳悕
+        auxiliaryWorkingHoursDay.setNameUser(userId);//濮撳悕id
         auxiliaryWorkingHoursDay.setState("宸叉彁浜�");
         return auxiliaryWorkingHoursDayMapper.insert(auxiliaryWorkingHoursDay);
     }
@@ -87,9 +129,6 @@
     @Override
     public int checkOrApprove(Integer id, String state) {
         AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay = auxiliaryWorkingHoursDayMapper.selectById(id);
-        if (auxiliaryWorkingHoursDay.getState().equals("宸叉壒鍑�") && state.equals("宸插鏍�")) {
-            throw new RuntimeException("璇ユ暟鎹凡缁忔壒鍑嗘棤闇�瀹℃牳!");
-        }
         auxiliaryWorkingHoursDay.setState(state);
         return auxiliaryWorkingHoursDayMapper.updateById(auxiliaryWorkingHoursDay);
     }
@@ -101,8 +140,7 @@
             throw new RuntimeException("璇ユ暟鎹凡缁忔壒鍑嗘垨宸插鏍�,鏃犳硶杩涜缂栬緫!");
         }
         Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
-        User user = userMapper.selectById(userId);
-        auxiliaryWorkingHoursDay.setName(user.getName());//濮撳悕
+        auxiliaryWorkingHoursDay.setNameUser(userId);//濮撳悕id
         return auxiliaryWorkingHoursDayMapper.updateById(auxiliaryWorkingHoursDay);
     }
 
@@ -117,8 +155,8 @@
     public String selectshiftByUser(LocalDateTime dateTime) {
         Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
         PerformanceShift performanceShift = performanceShiftMapper.selectOne(Wrappers.<PerformanceShift>lambdaQuery().eq(PerformanceShift::getUserId, userId).eq(PerformanceShift::getWorkTime, dateTime));
-        if (ObjectUtils.isEmpty(performanceShift)){
-            throw new RuntimeException("娌℃湁鏌ュ埌褰撳墠鐢ㄦ埛閫夋嫨鏃ユ湡鐨勫綋鐝彮娆′俊鎭�!!");
+        if (ObjectUtils.isEmpty(performanceShift)) {
+           return null;
         }
         return performanceShift.getShift();
     }
diff --git a/performance-server/src/main/java/com/yuanchu/mom/utils/StyleYearUtils.java b/performance-server/src/main/java/com/yuanchu/mom/utils/StyleYearUtils.java
index a1c54b1..43ae551 100644
--- a/performance-server/src/main/java/com/yuanchu/mom/utils/StyleYearUtils.java
+++ b/performance-server/src/main/java/com/yuanchu/mom/utils/StyleYearUtils.java
@@ -2,14 +2,22 @@
 
 import com.alibaba.excel.write.metadata.style.WriteCellStyle;
 import com.alibaba.excel.write.metadata.style.WriteFont;
+import com.yuanchu.mom.pojo.AuxiliaryOutputWorkingHours;
 import org.apache.poi.ss.usermodel.*;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 public class StyleYearUtils {
     /**
      * 鏍囬鏍峰紡
+     *
      * @return
      */
-    public static WriteCellStyle getHeadStyle(){
+    public static WriteCellStyle getHeadStyle() {
         // 澶寸殑绛栫暐
         WriteCellStyle headWriteCellStyle = new WriteCellStyle();
         // 鑳屾櫙棰滆壊
@@ -19,7 +27,7 @@
         // 瀛椾綋
         WriteFont headWriteFont = new WriteFont();
         headWriteFont.setFontName("浠垮畫");//璁剧疆瀛椾綋鍚嶅瓧
-        headWriteFont.setFontHeightInPoints((short)9);//璁剧疆瀛椾綋澶у皬
+        headWriteFont.setFontHeightInPoints((short) 9);//璁剧疆瀛椾綋澶у皬
         headWriteFont.setBold(true);//瀛椾綋鍔犵矖
         headWriteFont.setColor((short) 1);
         headWriteCellStyle.setWriteFont(headWriteFont); //鍦ㄦ牱寮忕敤搴旂敤璁剧疆鐨勫瓧浣�;
@@ -46,9 +54,10 @@
 
     /**
      * 鍐呭鏍峰紡
+     *
      * @return
      */
-    public static WriteCellStyle getContentStyle(){
+    public static WriteCellStyle getContentStyle() {
         // 鍐呭鐨勭瓥鐣�
         WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
 
@@ -80,4 +89,10 @@
 
         return contentWriteCellStyle;
     }
+
+    public static void main(String[] args) {
+
+        String a="[\"GB/T 15972.20-2021\",\"IEC 60793-1-20:2014\"]";
+        System.out.println(a.contains("GB/T 15972.20-2021"));
+    }
 }
diff --git a/performance-server/src/main/resources/mapper/AuxiliaryCorrectionHoursMapper.xml b/performance-server/src/main/resources/mapper/AuxiliaryCorrectionHoursMapper.xml
new file mode 100644
index 0000000..b2f074a
--- /dev/null
+++ b/performance-server/src/main/resources/mapper/AuxiliaryCorrectionHoursMapper.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yuanchu.mom.mapper.AuxiliaryCorrectionHoursMapper">
+
+    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.AuxiliaryCorrectionHours">
+        <id column="id" property="id" />
+        <result column="name_user" property="nameUser" />
+        <result column="type" property="type" />
+        <result column="one_hours" property="oneHours" />
+        <result column="two_hours" property="twoHours" />
+        <result column="three_hours" property="threeHours" />
+        <result column="four_hours" property="fourHours" />
+        <result column="five_hours" property="fiveHours" />
+        <result column="six_hours" property="sixHours" />
+        <result column="seven_hours" property="sevenHours" />
+        <result column="eight_hours" property="eightHours" />
+        <result column="nine_hours" property="nineHours" />
+        <result column="ten_hours" property="tenHours" />
+        <result column="eleven_hours" property="elevenHours" />
+        <result column="twelve_hours" property="twelveHours" />
+        <result column="thirteen_hours" property="thirteenHours" />
+        <result column="fourteen_hours" property="fourteenHours" />
+        <result column="fifteen_hours" property="fifteenHours" />
+        <result column="sixteen_hours" property="sixteenHours" />
+        <result column="seventeen_hours" property="seventeenHours" />
+        <result column="eighteen_hours" property="eighteenHours" />
+        <result column="nineteen_hours" property="nineteenHours" />
+        <result column="twenty_hours" property="twentyHours" />
+        <result column="twenty_one_hours" property="twentyOneHours" />
+        <result column="twenty_two_hours" property="twentyTwoHours" />
+        <result column="twenty_three_hours" property="twentyThreeHours" />
+        <result column="twenty_four_hours" property="twentyFourHours" />
+        <result column="twenty_five_hours" property="twentyFiveHours" />
+        <result column="twenty_six_hours" property="twentySixHours" />
+        <result column="twenty_seven_hours" property="twentySevenHours" />
+        <result column="twenty_eight_hours" property="twentyEightHours" />
+        <result column="twenty_nine_hours" property="twentyNineHours" />
+        <result column="thirty_hours" property="thirtyHours" />
+        <result column="thirty_one_hours" property="thirtyOneHours" />
+        <result column="month" property="month" />
+        <result column="create_time" property="createTime" />
+        <result column="update_time" property="updateTime" />
+        <result column="create_user" property="createUser" />
+        <result column="update_user" property="updateUser" />
+    </resultMap>
+    <select id="selectAuxiliaryCorrectionHours" resultType="com.yuanchu.mom.dto.AuxiliaryCorrectionHoursDto">
+        select data.*
+        from (
+        select ach.*,name
+        FROM auxiliary_correction_hours ach
+        left join user on user.id=ach.name_user
+        <if test="ids !=null and ids != ''">
+            WHERE name_user in
+            <foreach collection="ids" index="index" open="(" separator="," close=")" item="val">
+                #{val}
+            </foreach>
+        </if>
+        ) data
+        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+            ${ew.customSqlSegment}
+        </if>
+    </select>
+</mapper>
diff --git a/performance-server/src/main/resources/mapper/AuxiliaryOriginalHoursMapper.xml b/performance-server/src/main/resources/mapper/AuxiliaryOriginalHoursMapper.xml
new file mode 100644
index 0000000..04473fe
--- /dev/null
+++ b/performance-server/src/main/resources/mapper/AuxiliaryOriginalHoursMapper.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.yuanchu.mom.mapper.AuxiliaryOriginalHoursMapper">
+</mapper>
\ No newline at end of file
diff --git a/performance-server/src/main/resources/mapper/AuxiliaryOutputWorkingHoursMapper.xml b/performance-server/src/main/resources/mapper/AuxiliaryOutputWorkingHoursMapper.xml
index 7c882fc..0117578 100644
--- a/performance-server/src/main/resources/mapper/AuxiliaryOutputWorkingHoursMapper.xml
+++ b/performance-server/src/main/resources/mapper/AuxiliaryOutputWorkingHoursMapper.xml
@@ -1,35 +1,105 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.yuanchu.mom.mapper.AuxiliaryOutputWorkingHoursMapper">
-
     <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
     <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.AuxiliaryOutputWorkingHours">
-        <id column="id" property="id" />
-        <result column="inspect_project" property="inspectProject" />
-        <result column="overtime_order_no" property="overtimeOrderNo" />
-        <result column="overtime_work_time" property="overtimeWorkTime" />
-        <result column="overtime_amount" property="overtimeAmount" />
-        <result column="order_no" property="orderNo" />
-        <result column="work_time" property="workTime" />
-        <result column="amount" property="amount" />
-        <result column="output_work_time" property="outputWorkTime" />
-        <result column="date_time" property="dateTime" />
-        <result column="week" property="week" />
-        <result column="week_day" property="weekDay" />
-        <result column="check" property="check" />
-        <result column="create_time" property="createTime" />
-        <result column="update_time" property="updateTime" />
-        <result column="create_user" property="createUser" />
-        <result column="update_user" property="updateUser" />
+        <id column="id" property="id"/>
+        <result column="inspect_project" property="inspectProject"/>
+        <result column="overtime_order_no" property="overtimeOrderNo"/>
+        <result column="overtime_work_time" property="overtimeWorkTime"/>
+        <result column="overtime_amount" property="overtimeAmount"/>
+        <result column="order_no" property="orderNo"/>
+        <result column="work_time" property="workTime"/>
+        <result column="amount" property="amount"/>
+        <result column="output_work_time" property="outputWorkTime"/>
+        <result column="date_time" property="dateTime"/>
+        <result column="week" property="week"/>
+        <result column="week_day" property="weekDay"/>
+        <result column="check" property="check"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="create_user" property="createUser"/>
+        <result column="update_user" property="updateUser"/>
     </resultMap>
-    <select id="selectAuxiliaryOutputWorkingHours" resultType="com.yuanchu.mom.pojo.AuxiliaryOutputWorkingHours">
-        select data.*
-        from (
+    <select id="selectAuxiliaryOutputWorkingHours" resultType="com.yuanchu.mom.dto.AuxiliaryOutputWorkingHoursDto">
         select *
-        FROM auxiliary_output_working_hours
+        from (
+        select aowh.id,
+        inspect_project,
+        overtime_order_no,
+        overtime_work_time,
+        overtime_amount,
+        order_no,
+        work_time,
+        amount,
+        output_work_time,
+        date_time,
+        week,
+        week_day,
+        name
+        FROM auxiliary_output_working_hours aowh
+        left join user on user.id=aowh.`check`
+        <if test="ids !=null and ids != ''">
+            WHERE `check` in
+            <foreach collection="ids" index="index" open="(" separator="," close=")" item="val">
+                #{val}
+            </foreach>
+        </if>
         ) data
         <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
             ${ew.customSqlSegment}
         </if>
     </select>
+    <select id="selectDataByUser" resultType="com.yuanchu.mom.dto.AuxiliaryOutputWorkingHoursDto">
+        select aowh.*,name
+        FROM auxiliary_output_working_hours aowh
+        left join user on user.id=aowh.`check`
+        <if test="ids !=null and ids != ''">
+            WHERE `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.output_work_time
+        from(
+        select user.name,
+        user.id,
+        depart_lims_id,
+        output_work_time,
+        date_time as month
+        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 between #{startTime} and #{endTime}
+        <if test="ids !=null and ids != ''">
+            and `check` in
+            <foreach collection="ids" index="index" open="(" separator="," close=")" item="val">
+                #{val}
+            </foreach>
+        </if>
+        order by date_time
+        )A
+        where 1=1
+        <if test="userId !=null and userId != ''">
+            and A.user_id=#{userId}
+        </if>
+        <if test="departId !=null and departId != ''">
+            and A.depart_lims_id=#{departId}
+        </if>
+        group by A.name,A.month
+    </select>
+    <select id="selectListByIds" resultType="com.yuanchu.mom.pojo.AuxiliaryOutputWorkingHours">
+        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>
+    </select>
 </mapper>
diff --git a/performance-server/src/main/resources/mapper/AuxiliaryWorkingHoursDayMapper.xml b/performance-server/src/main/resources/mapper/AuxiliaryWorkingHoursDayMapper.xml
index 0fedc4f..cbcc3a6 100644
--- a/performance-server/src/main/resources/mapper/AuxiliaryWorkingHoursDayMapper.xml
+++ b/performance-server/src/main/resources/mapper/AuxiliaryWorkingHoursDayMapper.xml
@@ -4,7 +4,7 @@
     <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
     <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay">
         <id column="id" property="id"/>
-        <result column="name" property="name"/>
+        <result column="nameUser" property="nameUser"/>
         <result column="number" property="number"/>
         <result column="auxiliary_project" property="auxiliaryProject"/>
         <result column="approved_working_hour" property="approvedWorkingHour"/>
@@ -25,14 +25,42 @@
         <result column="update_user" property="updateUser"/>
         <result column="state" property="state"/>
     </resultMap>
-    <select id="selectAuxiliaryWorkingHoursDay" resultType="com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay">
+    <select id="selectAuxiliaryWorkingHoursDay" resultType="com.yuanchu.mom.dto.AuxiliaryWorkingHoursDayDto">
         select data.*
         from (
-        select *
-        FROM auxiliary_working_hours_day
+        select awhd.*,name
+        FROM auxiliary_working_hours_day awhd
+        left join user on name_user=user.id
+        <if test="ids !=null and ids != ''">
+            WHERE name_user in
+            <foreach collection="ids" index="index" open="(" separator="," close=")" item="val">
+                #{val}
+            </foreach>
+        </if>
         ) data
         <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
             ${ew.customSqlSegment}
         </if>
     </select>
+    <select id="selectDataByUser" resultType="com.yuanchu.mom.dto.AuxiliaryWorkingHoursDayDto">
+        select awhd.*,name
+        FROM auxiliary_working_hours_day awhd
+        left join user on name_user=user.id
+        <if test="ids !=null and ids != ''">
+            WHERE name_user in
+            <foreach collection="ids" index="index" open="(" separator="," close=")" item="val">
+                #{val}
+            </foreach>
+        </if>
+    </select>
+    <select id="selectListByIds" resultType="com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay">
+        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>
+    </select>
 </mapper>

--
Gitblit v1.9.3