From 5e566bdd716e2279dd8f2a10429a0622f1c59ba6 Mon Sep 17 00:00:00 2001 From: zhuo <2089219845@qq.com> Date: 星期一, 17 三月 2025 10:13:44 +0800 Subject: [PATCH] 标准树查询修改, 工时生成回退 --- basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardTreeServiceImpl.java | 20 +----- inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java | 127 ++++++++++++++++++++++++++++++++++++++---- 2 files changed, 117 insertions(+), 30 deletions(-) diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardTreeServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardTreeServiceImpl.java index 29c4b90..ad84b75 100644 --- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardTreeServiceImpl.java +++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardTreeServiceImpl.java @@ -61,28 +61,14 @@ @Override public List<FactoryDto> selectStandardTreeList() { List<FactoryDto> factoryDtos = standardTreeMapper.selectStandardTreeList(); - // 鏀堕泦鎵�鏈� sampleTypeDto 鐨� value - Set<String> sampleTypeValues = new HashSet<>(); for (FactoryDto factoryDto : factoryDtos) { for (LaboratoryDto laboratoryDto : factoryDto.getChildren()) { laboratoryDto.getChildren().sort((o1, o2) -> (o1.getSort() == null ? 0 : o1.getSort()) - (o2.getSort() == null ? 0 : o2.getSort())); for (SampleTypeDto sampleTypeDto : laboratoryDto.getChildren()) { - sampleTypeValues.add(sampleTypeDto.getValue()); - } - } - } - // 鎵归噺鏌ヨ鎵�鏈� sampleTypeDto 鐨勬暟鎹� - List<SampleDto> standardList = standardTreeMapper.getStandardTree3Batch(sampleTypeValues); - Map<String, List<SampleDto>> standardTreeMap = standardList.stream().collect(Collectors.groupingBy(SampleDto::getValue)); - // 灏嗘煡璇㈢粨鏋滃垎閰嶅埌瀵瑰簲鐨� sampleTypeDto - for (FactoryDto factoryDto : factoryDtos) { - for (LaboratoryDto laboratoryDto : factoryDto.getChildren()) { - for (SampleTypeDto sampleTypeDto : laboratoryDto.getChildren()) { - List<SampleDto> standardTreeList = standardTreeMap.get(sampleTypeDto.getValue()); - if (standardTreeList != null) { - sampleTypeDto.getChildren().addAll(standardTreeList); - } +// if (sampleTypeDto.getChildren().size() == 0) { + sampleTypeDto.getChildren().addAll(standardTreeMapper.getStandardTree3(sampleTypeDto.getValue())); +// } } } } 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 5e47ddc..4443888 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 @@ -2,6 +2,8 @@ import cn.hutool.core.bean.BeanUtil; 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 com.alibaba.fastjson.JSON; @@ -43,6 +45,7 @@ import com.ruoyi.inspect.util.HackLoopTableRenderPolicy; import com.ruoyi.inspect.vo.InsOrderPlanTaskSwitchVo; import com.ruoyi.inspect.vo.InsOrderPlanVO; +import com.ruoyi.performance.mapper.AuxiliaryOutputWorkingHoursMapper; import com.ruoyi.performance.mapper.PerformanceShiftMapper; import com.ruoyi.performance.mapper.ShiftTimeMapper; import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHours; @@ -69,8 +72,10 @@ import java.math.RoundingMode; import java.nio.file.Files; import java.nio.file.Paths; +import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.LocalTime; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.concurrent.atomic.AtomicBoolean; @@ -112,6 +117,8 @@ private AuxiliaryOutputWorkingHoursService auxiliaryOutputWorkingHoursService; @Resource private AuxiliaryOutputWorkingHoursTemporaryService auxiliaryOutputWorkingHoursTemporaryService; + @Resource + private AuxiliaryOutputWorkingHoursMapper auxiliaryOutputWorkingHoursMapper; @Resource private InformationNotificationService informationNotificationService; @Resource @@ -491,6 +498,14 @@ } } + //鏌ヨ妫�楠屽崟淇℃伅 + // 娣诲姞宸ユ椂 + 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); @@ -856,19 +871,19 @@ } // 12.娣诲姞宸ユ椂 - // 鍒犻櫎鍘熸湰璁㈠崟宸ユ椂 - 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); +// // 鍒犻櫎鍘熸湰璁㈠崟宸ユ椂 +// 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); // 13.娣诲姞璁㈠崟璐圭敤缁熻淇℃伅 List<InsProduct> productList = insProductMapper.selectProductByOrderId(orderId); @@ -4294,4 +4309,90 @@ .set(SpotCheckQuarterItem::getResult, unqualifiedCount.equals(0L) ? "鍚堟牸" : "涓嶅悎鏍�")); } + /** + * 娣诲姞宸ユ椂 + * @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); + + } + } + + + 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 "鏈煡"; + } + } } -- Gitblit v1.9.3