From 234b0ac195934b34c06045b2d2ef0f10e239dd8e Mon Sep 17 00:00:00 2001 From: zhuo <2089219845@qq.com> Date: 星期三, 23 四月 2025 00:06:54 +0800 Subject: [PATCH] 系统合并 --- cnas-process/src/main/java/com/ruoyi/process/service/impl/InspectionOrderServiceImpl.java | 146 +++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 137 insertions(+), 9 deletions(-) diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/InspectionOrderServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/InspectionOrderServiceImpl.java index 526aa38..ae6b0b4 100644 --- a/cnas-process/src/main/java/com/ruoyi/process/service/impl/InspectionOrderServiceImpl.java +++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/InspectionOrderServiceImpl.java @@ -1,5 +1,8 @@ package com.ruoyi.process.service.impl; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -7,20 +10,24 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.deepoove.poi.XWPFTemplate; import com.deepoove.poi.config.Configure; +import com.ruoyi.common.core.domain.entity.User; import com.ruoyi.common.utils.QueryWrappers; import com.ruoyi.framework.exception.ErrorException; -import com.ruoyi.inspect.pojo.InsOrder; -import com.ruoyi.inspect.pojo.InsReport; +import com.ruoyi.inspect.dto.InsOrderDeviceRecordDto; +import com.ruoyi.inspect.mapper.InsProductResultMapper; +import com.ruoyi.inspect.mapper.InsSampleMapper; +import com.ruoyi.inspect.pojo.*; import com.ruoyi.inspect.service.InsOrderService; import com.ruoyi.inspect.service.InsReportService; import com.ruoyi.inspect.util.HackLoopTableRenderPolicy; import com.ruoyi.process.dto.InspectionOrderDto; import com.ruoyi.process.dto.InspectionOrderExportDto; import com.ruoyi.process.mapper.InspectionOrderMapper; -import com.ruoyi.process.pojo.InspectionOrder; -import com.ruoyi.process.pojo.InspectionOrderDetail; -import com.ruoyi.process.service.InspectionOrderDetailService; -import com.ruoyi.process.service.InspectionOrderService; +import com.ruoyi.process.mapper.ProcessOrderDeviceMapper; +import com.ruoyi.process.mapper.ProcessSampleMapper; +import com.ruoyi.process.pojo.*; +import com.ruoyi.process.service.*; +import com.ruoyi.system.mapper.UserMapper; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -37,10 +44,11 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; +import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import java.util.HashMap; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** * <p> @@ -58,9 +66,27 @@ @Resource private InsOrderService insOrderService; @Resource + private InsSampleMapper insSampleMapper; + @Resource private InsReportService insReportService; @Value("${wordUrl}") private String wordUrl; + @Resource + private ProcessReportService processReportService; + @Resource + private ProcessOrderDeviceMapper processOrderDeviceMapper; + @Resource + private InsProductResultMapper insProductResultMapper; + @Resource + private ProcessOrderDeviceService processOrderDeviceService; + @Resource + private UserMapper userMapper; + @Resource + private ProcessSampleService processSampleService; + @Resource + private ProcessSampleMapper processSampleMapper; + @Resource + private ProcessDealService processDealService; /** @@ -117,8 +143,88 @@ } inspectionOrderDetailService.saveBatch(inspectionOrder.getOrderDetailList()); } - + /*鏂板7.8鎶ュ憡缁撴灉*/ + ProcessReport processReport = new ProcessReport(); + processReport.setInspectionOrderId(inspectionOrder.getInsOrderId()); + processReport.setInsReportCode(inspectionOrder.getEntrustCode());//鎶ュ憡缂栧彿=濮旀墭缂栧彿 + //椤垫暟 + try { + com.aspose.words.Document doc = new com.aspose.words.Document(path); + processReport.setPages(doc.getPageCount()+""); + } catch (Exception e) { + } + processReport.setNumber("1");//鍙戦�佷唤鏁伴粯璁�1 + processReport.setSend(inspectionOrder.getCommissionUnit());//鍙戝線浣曞=濮旀墭鍗曚綅 + processReport.setMethod(inspectionOrder.getSend()==1?"鑷彇":"鍏朵粬");//鍙戦�佹柟寮� + processReport.setSendTime(insReport.getRatifyTime().toLocalDate());//鍙戦�佹棩鏈� + processReport.setSendUser(64);//鍙戦�佷汉鍥哄畾 + processReport.setSignatory(inspectionOrder.getCommissionUser());//绛炬敹浜�=濮旀墭浜� + processReportService.save(processReport); + /*鏂板7.1濮旀墭鍗曞搴旂殑璁惧浣跨敤璁板綍*/ + addDeviceRecord(inspectionOrder,insReport.getWriteUserId()); + /*鏂板7.4鏍峰搧鎺ユ敹*/ + List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery() + .eq(InsSample::getInsOrderId, inspectionOrder.getInsOrderId())); + if (insSamples.size()>0){ + List<ProcessSample> processSamples = new ArrayList<>(); + for (InsSample insSample : insSamples) { + ProcessSample processSample = new ProcessSample(); + processSample.setReceiveDate(inspectionOrder.getSampleData());//鏀舵牱鏃ユ湡=棰嗘牱鏃ユ湡 + processSample.setSampleCode(insSample.getSampleCode());//鏍峰搧缂栧彿 + processSample.setSampleName(insSample.getSample());//鏍峰搧鍚嶇О + processSample.setNum(1);//鏍峰搧鏁伴噺=1 + processSample.setSampleSupplier(inspectionOrder.getCommissionUnit());//鏉ユ牱鍗曚綅 + LocalDate plusMonths = inspectionOrder.getSampleData() == null ? null : inspectionOrder.getSampleData().plusMonths(1); + processSample.setLeaveDate(plusMonths);//鐣欐牱鏃ユ湡=鏀舵牱鏃ユ湡寰�鍚庡欢涓�涓湀 + processSample.setSampleState(inspectionOrder.getSampleStatus());//鏍峰搧鐘舵�� + processSample.setDealTime(plusMonths);//閫�鏍锋棩鏈�=鐣欐牱鏃ユ湡 + processSample.setInspectionOrderId(inspectionOrder.getInspectionOrderId());//濮旀墭鍗昳d + processSamples.add(processSample); + } + processSampleService.saveBatch(processSamples); + } return true; + } + + private synchronized void addDeviceRecord(InspectionOrder inspectionOrder,Integer userId) { + // 鏌ヨ璁惧浣跨敤璁板綍鏌ヨ璇ヨ鍗曠殑浣跨敤璁板綍 + Set<String> recordCodeset = processOrderDeviceMapper.selectDeviceNumber(inspectionOrder.getInspectionOrderId()); + // 鑾峰彇璁㈠崟璁惧缂栧彿 + List<InsProductResult> resultList = insProductResultMapper.selectResultByOrderId(inspectionOrder.getInsOrderId()); + Set<String> deviceCodeSet = new HashSet<>(); + for (InsProductResult result : resultList) { + // 娣诲姞璁惧缂栧彿 + List<JSONObject> jsonObjects = JSON.parseArray(result.getEquipValue(), JSONObject.class); + for (JSONObject jsonObject : jsonObjects) { + if (!"".equals(jsonObject.get("v") + "")) { + List<String> v = StrUtil.split(jsonObject.get("v") + "", "锛�"); + deviceCodeSet.addAll(v); + } + } + } + // 1.鍒ゆ柇鏄惁鏈夋病鏈夋坊鍔犵殑浣跨敤璁板綍 + Set<String> orderDeviceNumbers = getDeviceDifference(deviceCodeSet, recordCodeset); + // 娣诲姞浣跨敤璁板綍, 鏍规嵁缂栧彿鏌ヨ璁惧id + if (CollectionUtils.isNotEmpty(orderDeviceNumbers)) { + List<Integer> orderDeviceIds = processOrderDeviceMapper.selectDeviceIdsByNumbers(orderDeviceNumbers); + List<ProcessOrderDevice> collect = orderDeviceIds.stream().map(deviceId -> { + ProcessOrderDevice processOrderDevice = new ProcessOrderDevice(); + processOrderDevice.setInspectionOrderId(inspectionOrder.getInspectionOrderId()); + processOrderDevice.setDeviceId(deviceId); + processOrderDevice.setSampleCode(inspectionOrder.getEntrustCode()); + processOrderDevice.setUseBefore(1); + processOrderDevice.setUseAfter(1); + processOrderDevice.setUsePerson(userMapper.selectById(userId).getName());//浣跨敤浜� + processOrderDevice.setUsePersonId(userId);//浣跨敤浜篿d + return processOrderDevice; + }).collect(Collectors.toList()); + processOrderDeviceService.saveBatch(collect); + } + } + + private static Set<String> getDeviceDifference(Set<String> number1, Set<String> number2) { + return number1.stream().filter(s1 -> number2.stream().noneMatch(s2 -> s1.equals(s2))) + .collect(Collectors.toSet()); } /** @@ -140,6 +246,11 @@ } inspectionOrderDetailService.saveBatch(InspectionOrder.getOrderDetailList()); + //淇敼7.9鎶ュ憡缁撴灉 + ProcessReport processReport = processReportService.getOne(Wrappers.<ProcessReport>lambdaQuery().eq(ProcessReport::getInspectionOrderId, InspectionOrder.getInspectionOrderId())); + processReport.setInsReportCode(InspectionOrder.getEntrustCode());//鎶ュ憡缂栧彿=濮旀墭缂栧彿 + processReportService.updateById(processReport); + return true; } @@ -153,6 +264,23 @@ inspectionOrderDetailService.remove(Wrappers.<InspectionOrderDetail>lambdaQuery() .eq(InspectionOrderDetail::getInspectionOrderId, inspectionOrderId)); baseMapper.deleteById(inspectionOrderId); + //鍒犻櫎7.8鎶ュ憡 + processReportService.remove(Wrappers.<ProcessReport>lambdaQuery() + .eq(ProcessReport::getInspectionOrderId, inspectionOrderId)); + //鍒犻櫎瀵瑰簲鐨勮澶囦娇鐢ㄨ褰� + processOrderDeviceService.remove(Wrappers.<ProcessOrderDevice>lambdaQuery() + .eq(ProcessOrderDevice::getInspectionOrderId, inspectionOrderId)); + //鍒犻櫎瀵瑰簲鐨�7.4鐨勬牱鍝佺敵璇� + List<ProcessSample> processSamples = processSampleMapper.selectList(Wrappers.<ProcessSample>lambdaQuery() + .eq(ProcessSample::getInspectionOrderId, inspectionOrderId)); + if (processSamples.size()>0){ + List<Integer> list = processSamples.stream().map(ProcessSample::getId).collect(Collectors.toList()); + processDealService.remove(Wrappers.<ProcessDeal>lambdaQuery() + .in(ProcessDeal::getProcessSampleId,list)); + } + //鍒犻櫎瀵瑰簲7.4鐨勬牱鍝佹帴鏀� + processSampleService.remove(Wrappers.<ProcessSample>lambdaQuery() + .eq(ProcessSample::getInspectionOrderId,inspectionOrderId)); return true; } -- Gitblit v1.9.3