From 3aac0bf15ae2942f9b810715946be8a7588004ec Mon Sep 17 00:00:00 2001
From: zhuo <2089219845@qq.com>
Date: 星期五, 28 二月 2025 11:39:53 +0800
Subject: [PATCH] 工时创建流程调整

---
 inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderStateService.java                                         |   15 +
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderStateServiceImpl.java                                |   19 ++
 ruoyi-admin/src/main/resources/application.yml                                                                           |    2 
 performance-server/src/main/java/com/ruoyi/performance/pojo/AuxiliaryOutputWorkingHoursTemporary.java                    |  116 ++++++++++++++
 inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java                                        |    1 
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductServiceImpl.java                                   |    1 
 performance-server/src/main/java/com/ruoyi/performance/mapper/AuxiliaryOutputWorkingHoursTemporaryMapper.java            |   15 +
 ruoyi-common/src/main/java/com/ruoyi/common/utils/QueryWrappers.java                                                     |    2 
 inspect-server/src/main/java/com/ruoyi/inspect/service/InsProductService.java                                            |    1 
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java                                     |  112 ++++++++++++-
 basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListServiceImpl.java                              |    4 
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java                                 |  131 ++--------------
 performance-server/src/main/java/com/ruoyi/performance/service/AuxiliaryOutputWorkingHoursTemporaryService.java          |   15 +
 performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryOutputWorkingHoursTemporaryServiceImpl.java |   19 ++
 14 files changed, 327 insertions(+), 126 deletions(-)

diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListServiceImpl.java
index 4bc4557..06567df 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListServiceImpl.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListServiceImpl.java
@@ -428,7 +428,9 @@
         }).collect(Collectors.toList());
 //            this.saveBatch(productLists);
         // 鎵归噺娣诲姞鏍囧噯
-        baseMapper.saveBatchProductLists(productLists);
+        if (CollectionUtils.isNotEmpty(productLists)) {
+            baseMapper.saveBatchProductLists(productLists);
+        }
 
 
         Collections.sort(list, (o1, o2) -> {
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java b/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java
index b8f1002..22d4748 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java
@@ -99,7 +99,6 @@
             @ApiImplicitParam(name = "id", value = "妫�楠屽崟id", dataTypeClass = Integer.class),
             @ApiImplicitParam(name = "state", value = "瀹℃牳缁撴灉 1:閫氳繃 2锛氫笉閫氳繃", dataTypeClass = Integer.class)
     })
-
     @PostMapping("/upInsOrderOfState")
     public Result<?> upInsOrderOfState(@RequestBody InsOrder insOrder) {
         return Result.success(insOrderService.upInsOrderOfState(insOrder));
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderStateService.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderStateService.java
new file mode 100644
index 0000000..318e631
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderStateService.java
@@ -0,0 +1,15 @@
+package com.ruoyi.inspect.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.inspect.pojo.InsOrderState;
+
+/**
+ * 妫�楠屼换鍔$姸鎬�
+ *
+ * @author zhuo
+ * @since 2025-02-28
+ */
+public interface InsOrderStateService extends IService<InsOrderState> {
+
+}
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/InsProductService.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/InsProductService.java
index 078d393..487aef2 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/InsProductService.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/InsProductService.java
@@ -6,6 +6,7 @@
 import com.ruoyi.inspect.dto.InsProductBindingDto;
 import com.ruoyi.inspect.pojo.InsOrder;
 import com.ruoyi.inspect.pojo.InsProduct;
+import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHours;
 
 import java.util.List;
 import java.util.Map;
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
index c1f9c46..d366471 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
@@ -48,7 +48,9 @@
 import com.ruoyi.performance.mapper.PerformanceShiftMapper;
 import com.ruoyi.performance.mapper.ShiftTimeMapper;
 import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHours;
+import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHoursTemporary;
 import com.ruoyi.performance.service.AuxiliaryOutputWorkingHoursService;
+import com.ruoyi.performance.service.AuxiliaryOutputWorkingHoursTemporaryService;
 import com.ruoyi.system.mapper.CustomMapper;
 import com.ruoyi.system.mapper.UserMapper;
 import com.ruoyi.system.service.ISysDictTypeService;
@@ -119,9 +121,9 @@
     @Resource
     private InsUnPassService insUnPassService;
     @Resource
-    private AuxiliaryOutputWorkingHoursMapper auxiliaryOutputWorkingHoursMapper;
-    @Resource
     private AuxiliaryOutputWorkingHoursService auxiliaryOutputWorkingHoursService;
+    @Resource
+    private AuxiliaryOutputWorkingHoursTemporaryService auxiliaryOutputWorkingHoursTemporaryService;
     @Resource
     private InformationNotificationService informationNotificationService;
     @Resource
@@ -500,13 +502,6 @@
                     }
                 }
 
-                //鏌ヨ妫�楠屽崟淇℃伅
-                // 娣诲姞宸ユ椂
-                InsProduct finalInsProduct = insProductMapper.selectById(product.getId());
-                threadPoolTaskExecutor.execute(() -> {
-                    InsOrder insOrder = insOrderMapper.selectById(insSample.getInsOrderId());
-                    this.addAuxiliary(userId, finalInsProduct, insOrder);
-                });
             }
         });
         String sampleIdStr = insContext.keySet().stream().findFirst().orElse(null);
@@ -892,6 +887,21 @@
             }
         }
 
+        // 娣诲姞宸ユ椂
+        // 鍒犻櫎鍘熸湰璁㈠崟宸ユ椂
+        auxiliaryOutputWorkingHoursService.remove(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery()
+                .eq(AuxiliaryOutputWorkingHours::getOrderId, orderId));
+        // 鏌ヨ宸ユ椂鏆傚瓨
+        List<AuxiliaryOutputWorkingHoursTemporary> hoursTemporaries = auxiliaryOutputWorkingHoursTemporaryService.list(Wrappers.<AuxiliaryOutputWorkingHoursTemporary>lambdaQuery()
+                .eq(AuxiliaryOutputWorkingHoursTemporary::getOrderId, orderId));
+        List<AuxiliaryOutputWorkingHours> outputWorkingHours = hoursTemporaries.stream().map(hoursTemporary -> {
+            AuxiliaryOutputWorkingHours workingHours = new AuxiliaryOutputWorkingHours();
+            BeanUtil.copyProperties(hoursTemporary, workingHours);
+            workingHours.setId(null);
+            return workingHours;
+        }).collect(Collectors.toList());
+        auxiliaryOutputWorkingHoursService.saveBatch(outputWorkingHours);
+
         // 鎴愬搧鎶芥牱娣诲姞鍚堟牸鐘舵��
         // 鍒ゆ柇鏄惁鏈夋娊鏍蜂俊鎭�
         if (order.getQuarterItemId() != null) {
@@ -969,59 +979,6 @@
         }
 
         return 1;
-    }
-
-    public int pxToCm(int px) {
-        return px / 9;
-    }
-
-    // 鑾峰彇涓や釜localDateTime鐨勬瘡涓�澶�
-    public static List<LocalDateTime> getLocalDateTimesBetween(LocalDateTime start, LocalDateTime end) {
-        List<LocalDateTime> localDateTimes = new ArrayList<>();
-        LocalDate currentDate = start.toLocalDate();
-        LocalDateTime currentLocalDateTime = start;
-        while (!currentDate.isAfter(end.toLocalDate())) {
-            localDateTimes.add(currentLocalDateTime);
-            currentLocalDateTime = currentLocalDateTime.plusDays(1);
-            currentDate = currentDate.plusDays(1);
-        }
-        return localDateTimes;
-    }
-
-    public static String getWeek(String dayStr) {
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        try {
-            Date date = sdf.parse(dayStr);
-            Calendar calendar = Calendar.getInstance();
-            calendar.setTime(date);
-            int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
-            int day = calendar.get(Calendar.DAY_OF_MONTH);
-            return getWeekDay(dayOfWeek);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return null;
-    }
-
-    public static String getWeekDay(int dayOfWeek) {
-        switch (dayOfWeek) {
-            case Calendar.MONDAY:
-                return "鍛ㄤ竴";
-            case Calendar.TUESDAY:
-                return "鍛ㄤ簩";
-            case Calendar.WEDNESDAY:
-                return "鍛ㄤ笁";
-            case Calendar.THURSDAY:
-                return "鍛ㄥ洓";
-            case Calendar.FRIDAY:
-                return "鍛ㄤ簲";
-            case Calendar.SATURDAY:
-                return "鍛ㄥ叚";
-            case Calendar.SUNDAY:
-                return "鍛ㄦ棩";
-            default:
-                return "鏈煡";
-        }
     }
 
 
@@ -4330,56 +4287,6 @@
             }
         }
         return null;
-    }
-
-    /**
-     * 娣诲姞宸ユ椂
-     * @param userId
-     * @param insProduct
-     * @param insOrder
-     */
-    private synchronized void addAuxiliary(Integer userId, InsProduct insProduct, InsOrder insOrder) {
-        if (insProduct.getIsBinding().equals(1)) {
-            return;
-        }
-
-        //棣栧厛鍒ゆ柇褰撳墠浜虹殑褰撳墠鏃堕棿鏄惁鏄帓鐝椂闂村唴,濡傛灉涓嶆槸灏辨槸鍔犵彮
-        LocalDateTime today = LocalDateTime.of(LocalDate.now(), LocalTime.MIDNIGHT);
-
-        //鏍¢獙濡傛灉杩欎釜浜鸿繖涓娴嬮」鐩凡缁忔坊鍔犺繃浜�
-        List<AuxiliaryOutputWorkingHours> count2s = auxiliaryOutputWorkingHoursMapper.selectList(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery()
-                .eq(AuxiliaryOutputWorkingHours::getCheck, userId)
-                .eq(AuxiliaryOutputWorkingHours::getInsProductId, insProduct.getId()));
-        if (CollectionUtils.isNotEmpty(count2s)) {
-            auxiliaryOutputWorkingHoursMapper.deleteBatchIds(count2s.stream().map(auxiliaryOutputWorkingHours -> auxiliaryOutputWorkingHours.getId()).collect(Collectors.toList()));
-        }
-        if (ObjectUtils.isNotEmpty(insProduct.getManHour()) && StringUtils.isNotBlank(insProduct.getLastValue())) {
-            AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours = new AuxiliaryOutputWorkingHours();
-            auxiliaryOutputWorkingHours.setInspectionItemClass(insProduct.getInspectionItemClass());//妫�娴嬮」鍒嗙被
-            auxiliaryOutputWorkingHours.setInspectionItem(insProduct.getInspectionItem());//妫�娴嬬埗椤�
-            auxiliaryOutputWorkingHours.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());//妫�娴嬪瓙椤�
-            auxiliaryOutputWorkingHours.setSample(insSampleMapper.selectById(insProduct.getInsSampleId()).getSampleCode());//鏍峰搧缂栧彿
-            auxiliaryOutputWorkingHours.setOrderId(insOrder.getId());//璁㈠崟id
-            auxiliaryOutputWorkingHours.setOrderNo(insOrder.getEntrustCode());//闈炲姞鐝鎵樺崟鍙�
-            auxiliaryOutputWorkingHours.setWorkTime(insProduct.getManHour());//闈炲姞鐝伐鏃�
-            auxiliaryOutputWorkingHours.setAmount(1);//闈炲姞鐝暟閲�
-            auxiliaryOutputWorkingHours.setOutputWorkTime((ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getOvertimeWorkTime()) ? auxiliaryOutputWorkingHours.getOvertimeWorkTime() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getWorkTime()) ? auxiliaryOutputWorkingHours.getWorkTime() : BigDecimal.ZERO));//浜ч噺宸ユ椂
-            auxiliaryOutputWorkingHours.setManHourGroup(insProduct.getManHourGroup());//宸ユ椂鍒嗙粍
-            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-            DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-            auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().toLocalDate().atStartOfDay().format(formatters));//鏃ユ湡
-            LocalDateTime localDateTime = LocalDateTime.now();
-            DateTime parse = DateUtil.parse(localDateTime.format(formatter));
-            auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//鏄熸湡
-            auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//鍛ㄦ
-            auxiliaryOutputWorkingHours.setCheck(userId);//妫�娴嬩汉
-            auxiliaryOutputWorkingHours.setPrice(insProduct.getPrice());//鍗曚环
-            auxiliaryOutputWorkingHours.setSampleId(insProduct.getInsSampleId());//鏍峰搧id
-            auxiliaryOutputWorkingHours.setInsProductId(insProduct.getId());//妫�楠岄」id
-
-            auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours);
-
-        }
     }
 
 }
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
index 30bbed5..ae86eed 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
@@ -1,6 +1,8 @@
 package com.ruoyi.inspect.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
@@ -31,10 +33,14 @@
 import com.ruoyi.inspect.mapper.*;
 import com.ruoyi.inspect.pojo.*;
 import com.ruoyi.inspect.service.InsOrderService;
+import com.ruoyi.inspect.service.InsOrderStateService;
 import com.ruoyi.inspect.service.InsProductService;
 import com.ruoyi.inspect.service.InsSampleService;
 import com.ruoyi.inspect.vo.InsOrderPrintingVo;
 import com.ruoyi.inspect.vo.SampleDefectsFatherVo;
+import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHours;
+import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHoursTemporary;
+import com.ruoyi.performance.service.AuxiliaryOutputWorkingHoursTemporaryService;
 import com.ruoyi.system.mapper.CustomMapper;
 import com.ruoyi.system.mapper.UserMapper;
 import lombok.AllArgsConstructor;
@@ -47,6 +53,7 @@
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.net.URLEncoder;
+import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.Month;
@@ -70,18 +77,17 @@
     private InsSampleMapper insSampleMapper;
     private InsProductService insProductService;
     private InsProductMapper insProductMapper;
-    private InsProductUserMapper insProductUserMapper;
     private InsSampleUserMapper insSampleUserMapper;
-    private InsOrderStateMapper insOrderStateMapper;
+    private InsOrderStateService insOrderStateService;
     private UserMapper userMapper;
     private IfsInventoryQuantityMapper ifsInventoryQuantityMapper;
-    private CustomMapper customMapper;
     private final NumberGenerator<InsOrder> numberGenerator;
     private InsReportMapper insReportMapper;
     private InsUnqualifiedRetestProductMapper insUnqualifiedRetestProductMapper;
     private IfsApiUtils ifsApiUtils;
     private SpotCheckQuarterItemMapper spotCheckQuarterItemMapper;
     private StandardProductListMapper standardProductListMapper;
+    private AuxiliaryOutputWorkingHoursTemporaryService auxiliaryOutputWorkingHoursTemporaryService;
 
 
 
@@ -100,6 +106,11 @@
     }
 
 
+    /**
+     * 鍒嗛厤妫�楠屼汉
+     *
+     * @return
+     */
     @Override
     @Transactional(rollbackFor = Exception.class)
     public int upInsOrder(Integer orderId, Integer sampleId, String appointed, Integer userId, String sonLaboratory) {
@@ -108,13 +119,15 @@
         insOrder.setAppointed(StringUtils.isNotEmpty(appointed) ? LocalDate.parse(appointed) : null);
         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<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId));
+        List<Integer> ids = insSamples.stream().map(InsSample::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) {
+
+        // 鎵归噺娣诲姞妫�楠屼换鍔$姸鎬佽〃
+        List<InsOrderState> insOrderStateList = insProducts.stream().map(insProduct -> {
             InsOrderState insOrderState = new InsOrderState();
             insOrderState.setInsOrderId(orderId);
             try {
@@ -123,8 +136,10 @@
                 throw new ErrorException("璇ユ楠屽崟鏈夋湭缁存姢瀹為獙瀹ょ殑妫�楠岄」鐩�");
             }
             insOrderState.setInsState(0);
-            insOrderStateMapper.insert(insOrderState);
-        }
+            return insOrderState;
+        }).collect(Collectors.toList());
+        insOrderStateService.saveBatch(insOrderStateList);
+
         if (userId != null) {
             InsSampleUser insSampleUser = new InsSampleUser();
             insSampleUser.setState(0);
@@ -144,7 +159,79 @@
             spotCheckQuarterItem.setSamplingUser(user.getName());
             spotCheckQuarterItemMapper.updateById(spotCheckQuarterItem);
         }
+
+
+        // 鍒涘缓宸ユ椂鏆傚瓨
+        // 缂撳瓨鏍峰搧id, 缂栧彿map
+        Map<Integer, String> sampleMap = insSamples.stream().collect(Collectors.toMap(InsSample::getId, InsSample::getSampleCode));
+        List<InsProduct> insProductList = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
+                .in(InsProduct::getInsSampleId, ids)
+                .eq(InsProduct::getState, 1));
+        List<AuxiliaryOutputWorkingHoursTemporary> outputWorkingHours = insProductList.stream().map(insProduct -> {
+            AuxiliaryOutputWorkingHoursTemporary auxiliaryOutputWorkingHours = new AuxiliaryOutputWorkingHoursTemporary();
+            auxiliaryOutputWorkingHours.setInspectionItemClass(insProduct.getInspectionItemClass());//妫�娴嬮」鍒嗙被
+            auxiliaryOutputWorkingHours.setInspectionItem(insProduct.getInspectionItem());//妫�娴嬬埗椤�
+            auxiliaryOutputWorkingHours.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());//妫�娴嬪瓙椤�
+            auxiliaryOutputWorkingHours.setSample(sampleMap.get(insProduct.getInsSampleId()));//鏍峰搧缂栧彿
+            auxiliaryOutputWorkingHours.setOrderId(order.getId());//璁㈠崟id
+            auxiliaryOutputWorkingHours.setOrderNo(order.getEntrustCode());//闈炲姞鐝鎵樺崟鍙�
+            auxiliaryOutputWorkingHours.setWorkTime(insProduct.getManHour());//闈炲姞鐝伐鏃�
+            auxiliaryOutputWorkingHours.setAmount(1);//闈炲姞鐝暟閲�
+            auxiliaryOutputWorkingHours.setOutputWorkTime((ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getOvertimeWorkTime()) ? auxiliaryOutputWorkingHours.getOvertimeWorkTime() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getWorkTime()) ? auxiliaryOutputWorkingHours.getWorkTime() : BigDecimal.ZERO));//浜ч噺宸ユ椂
+            auxiliaryOutputWorkingHours.setManHourGroup(insProduct.getManHourGroup());//宸ユ椂鍒嗙粍
+            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+            DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+            auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().toLocalDate().atStartOfDay().format(formatters));//鏃ユ湡
+            LocalDateTime localDateTime = LocalDateTime.now();
+            DateTime parse = DateUtil.parse(localDateTime.format(formatter));
+            auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//鏄熸湡
+            auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//鍛ㄦ
+            auxiliaryOutputWorkingHours.setCheck(userId);//妫�娴嬩汉
+            auxiliaryOutputWorkingHours.setPrice(insProduct.getPrice());//鍗曚环
+            auxiliaryOutputWorkingHours.setSampleId(insProduct.getInsSampleId());//鏍峰搧id
+            auxiliaryOutputWorkingHours.setInsProductId(insProduct.getId());//妫�楠岄」id
+
+            return auxiliaryOutputWorkingHours;
+        }).collect(Collectors.toList());
+        auxiliaryOutputWorkingHoursTemporaryService.saveBatch(outputWorkingHours);
+
         return 1;
+    }
+
+    public static String getWeek(String dayStr) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        try {
+            Date date = sdf.parse(dayStr);
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(date);
+            int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
+            int day = calendar.get(Calendar.DAY_OF_MONTH);
+            return getWeekDay(dayOfWeek);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    public static String getWeekDay(int dayOfWeek) {
+        switch (dayOfWeek) {
+            case Calendar.MONDAY:
+                return "鍛ㄤ竴";
+            case Calendar.TUESDAY:
+                return "鍛ㄤ簩";
+            case Calendar.WEDNESDAY:
+                return "鍛ㄤ笁";
+            case Calendar.THURSDAY:
+                return "鍛ㄥ洓";
+            case Calendar.FRIDAY:
+                return "鍛ㄤ簲";
+            case Calendar.SATURDAY:
+                return "鍛ㄥ叚";
+            case Calendar.SUNDAY:
+                return "鍛ㄦ棩";
+            default:
+                return "鏈煡";
+        }
     }
 
     @Override
@@ -284,9 +371,11 @@
                         .set(IfsInventoryQuantity::getInspectStatus, 0));
             }
 
+            // 瀹℃牳妫�楠屽崟
             upInsOrderOfState(insOrder);
-            upInsOrder(insOrder.getId(), null, appointed != null ? appointed.toString() : null, SecurityUtils.getUserId().intValue(), "鍘熸潗鏂�");
 
+            // 鍒嗛厤妫�楠屼汉
+            upInsOrder(insOrder.getId(), null, appointed != null ? appointed.toString() : null, SecurityUtils.getUserId().intValue(), "鍘熸潗鏂�");
 
             // 鏍规嵁闆朵欢鍙峰垽鏂槸鍚︽槸杈呮潗
             boolean isRaw = false;
@@ -377,6 +466,11 @@
         return map;
     }
 
+    /**
+     * 瀹℃牳妫�楠屽崟
+     * @param insOrder
+     * @return
+     */
     @Override
     public int upInsOrderOfState(InsOrder insOrder) {
         insOrder.setExamineTime(LocalDateTime.now());
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderStateServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderStateServiceImpl.java
new file mode 100644
index 0000000..25c0e0f
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderStateServiceImpl.java
@@ -0,0 +1,19 @@
+package com.ruoyi.inspect.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.inspect.mapper.InsOrderStateMapper;
+import com.ruoyi.inspect.pojo.InsOrderState;
+import com.ruoyi.inspect.service.InsOrderStateService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 妫�楠屼换鍔$姸鎬�
+ *
+ * @author zhuo
+ * @since 2025-02-28
+ */
+@Service
+public class InsOrderStateServiceImpl extends ServiceImpl<InsOrderStateMapper, InsOrderState> implements InsOrderStateService {
+
+}
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductServiceImpl.java
index 63619a2..6654ad3 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductServiceImpl.java
@@ -16,6 +16,7 @@
 import com.ruoyi.inspect.pojo.InsProduct;
 import com.ruoyi.inspect.pojo.InsSample;
 import com.ruoyi.inspect.service.InsProductService;
+import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHours;
 import lombok.AllArgsConstructor;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
diff --git a/performance-server/src/main/java/com/ruoyi/performance/mapper/AuxiliaryOutputWorkingHoursTemporaryMapper.java b/performance-server/src/main/java/com/ruoyi/performance/mapper/AuxiliaryOutputWorkingHoursTemporaryMapper.java
new file mode 100644
index 0000000..0f9be14
--- /dev/null
+++ b/performance-server/src/main/java/com/ruoyi/performance/mapper/AuxiliaryOutputWorkingHoursTemporaryMapper.java
@@ -0,0 +1,15 @@
+package com.ruoyi.performance.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHoursTemporary;
+
+/**
+ * 宸ユ椂鏆傚瓨琛�
+ *
+ * @author zhuo
+ * @since 2025-02-27
+ */
+public interface AuxiliaryOutputWorkingHoursTemporaryMapper extends BaseMapper<AuxiliaryOutputWorkingHoursTemporary> {
+
+}
+
diff --git a/performance-server/src/main/java/com/ruoyi/performance/pojo/AuxiliaryOutputWorkingHoursTemporary.java b/performance-server/src/main/java/com/ruoyi/performance/pojo/AuxiliaryOutputWorkingHoursTemporary.java
new file mode 100644
index 0000000..2a399b0
--- /dev/null
+++ b/performance-server/src/main/java/com/ruoyi/performance/pojo/AuxiliaryOutputWorkingHoursTemporary.java
@@ -0,0 +1,116 @@
+package com.ruoyi.performance.pojo;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 宸ユ椂鏆傚瓨琛�
+ *
+ * @author zhuo
+ * @since 2025-02-27
+ */
+@Data
+@TableName("auxiliary_output_working_hours_temporary")
+public class AuxiliaryOutputWorkingHoursTemporary  {
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty("妫�娴嬮」鍒嗙被")
+    @ExcelProperty(index = 2, value = "妫�娴嬮」鍒嗙被")
+    private String inspectionItemClass;
+
+    @ApiModelProperty("妫�娴嬮」")
+    @ExcelProperty(index = 3, value = "妫�娴嬮」")
+    private String inspectionItem;
+
+    @ApiModelProperty("妫�娴嬪瓙椤�")
+    @ExcelProperty(index = 4, value = "妫�娴嬪瓙椤�")
+    private String inspectionItemSubclass;
+
+    @ApiModelProperty("鏍峰搧id")
+    private Integer sampleId;
+
+    @ApiModelProperty("鏍峰搧缂栧彿")
+    @ExcelProperty(index = 6, value = "鏍峰搧缂栧彿")
+    private String sample;
+
+    @ApiModelProperty("鍔犵彮濮旀墭鍗曞彿")
+    private String overtimeOrderNo;
+
+    @ApiModelProperty("鍔犵彮宸ユ椂")
+    private BigDecimal overtimeWorkTime;
+
+    @ApiModelProperty("鍔犵彮鏁伴噺")
+    private Integer overtimeAmount;
+
+    @ApiModelProperty("闈炲姞鐝鎵樺崟鍙�")
+    private Integer orderId;
+
+    @ApiModelProperty("濮旀墭鍗曞彿")
+    @ExcelProperty(index = 5, value = "濮旀墭鍗曞彿")
+    private String orderNo;
+
+    @ApiModelProperty("宸ユ椂")
+    private BigDecimal workTime;
+
+    @ApiModelProperty("鏁伴噺")
+    private Integer amount;
+
+    @ApiModelProperty("浜ч噺宸ユ椂")
+    @ExcelProperty(index = 7, value = "浜ч噺宸ユ椂")
+    private BigDecimal outputWorkTime;
+
+    @ApiModelProperty("鏃ユ湡")
+    @ExcelProperty(index = 10, value = "鏃ユ湡")
+    private String dateTime;
+
+    @ApiModelProperty("鍛ㄦ")
+    @ExcelProperty(index = 11, value = "鍛ㄦ")
+    private String week;
+
+    @ApiModelProperty("鏄熸湡")
+    @ExcelProperty(index = 12, value = "鏄熸湡")
+    private String weekDay;
+
+    @ApiModelProperty("妫�娴嬩汉id")
+    @TableField("`check`")
+    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")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+    @ApiModelProperty("淇敼浜篿d")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Integer updateUser;
+
+    @ApiModelProperty("宸ユ椂鍒嗙粍")
+    @ExcelProperty(index = 8, value = "宸ユ椂鍒嗙粍")
+    private String manHourGroup;
+
+    @ApiModelProperty("鍗曚环")
+    @ExcelProperty(index = 9, value = "鍗曚环")
+    private BigDecimal price;
+
+    @ApiModelProperty("妫�楠岄」id")
+    private Integer insProductId;
+}
+
diff --git a/performance-server/src/main/java/com/ruoyi/performance/service/AuxiliaryOutputWorkingHoursTemporaryService.java b/performance-server/src/main/java/com/ruoyi/performance/service/AuxiliaryOutputWorkingHoursTemporaryService.java
new file mode 100644
index 0000000..dd5078e
--- /dev/null
+++ b/performance-server/src/main/java/com/ruoyi/performance/service/AuxiliaryOutputWorkingHoursTemporaryService.java
@@ -0,0 +1,15 @@
+package com.ruoyi.performance.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHoursTemporary;
+
+/**
+ * 宸ユ椂鏆傚瓨琛�
+ *
+ * @author zhuo
+ * @since 2025-02-27
+ */
+public interface AuxiliaryOutputWorkingHoursTemporaryService extends IService<AuxiliaryOutputWorkingHoursTemporary> {
+
+}
+
diff --git a/performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryOutputWorkingHoursTemporaryServiceImpl.java b/performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryOutputWorkingHoursTemporaryServiceImpl.java
new file mode 100644
index 0000000..09e3154
--- /dev/null
+++ b/performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryOutputWorkingHoursTemporaryServiceImpl.java
@@ -0,0 +1,19 @@
+package com.ruoyi.performance.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.performance.mapper.AuxiliaryOutputWorkingHoursTemporaryMapper;
+import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHoursTemporary;
+import com.ruoyi.performance.service.AuxiliaryOutputWorkingHoursTemporaryService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 宸ユ椂鏆傚瓨琛�
+ *
+ * @author zhuo
+ * @since 2025-02-27
+ */
+@Service
+public class AuxiliaryOutputWorkingHoursTemporaryServiceImpl extends ServiceImpl<AuxiliaryOutputWorkingHoursTemporaryMapper, AuxiliaryOutputWorkingHoursTemporary> implements AuxiliaryOutputWorkingHoursTemporaryService {
+
+}
+
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index 0e179cd..40e0272 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -99,7 +99,7 @@
   # 浠ょ墝瀵嗛挜
   secret: abcdefghijklmnopqrstuvwxyz
   # 浠ょ墝鏈夋晥鏈燂紙榛樿30鍒嗛挓锛�
-  expireTime: 30
+  expireTime: 450
 
 # PageHelper鍒嗛〉鎻掍欢
 pagehelper:
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/QueryWrappers.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/QueryWrappers.java
index 0878afb..a4b5d3d 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/QueryWrappers.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/QueryWrappers.java
@@ -41,7 +41,6 @@
                 e.printStackTrace();
                 throw new RuntimeException("鏌ヨ鏉′欢鐢熸垚閿欒");
             }
-//            System.out.println(field.getName() + "|" + (value == null || value.equals("")) + "|" + value);
             if(value == null || value.equals("")){
                 continue;
             }
@@ -62,7 +61,6 @@
                 }
             }
         }
-//        System.out.println(wrapper.getExpression().getSqlSegment());
         return wrapper;
     }
 }

--
Gitblit v1.9.3