From 00c23dd7d4a8f229d5c7fbe3439c6ea230fa7f48 Mon Sep 17 00:00:00 2001 From: chenrui <1187576398@qq.com> Date: 星期三, 09 四月 2025 16:20:21 +0800 Subject: [PATCH] 成品检验查询功能开发 --- inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java | 367 +++++++++++++++++++++++++++------------------------ 1 files changed, 194 insertions(+), 173 deletions(-) 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 0a6305f..28effb2 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,8 +2,6 @@ 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; @@ -32,6 +30,7 @@ import com.ruoyi.basic.service.StandardTemplateService; import com.ruoyi.common.constant.DictDataConstants; import com.ruoyi.common.constant.InsOrderTypeConstants; +import com.ruoyi.common.constant.MenuJumpPathConstants; import com.ruoyi.common.core.domain.entity.Custom; import com.ruoyi.common.core.domain.entity.InformationNotification; import com.ruoyi.common.core.domain.entity.User; @@ -44,7 +43,6 @@ 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; @@ -57,8 +55,9 @@ import com.ruoyi.system.service.InformationNotificationService; import org.apache.commons.lang3.StringUtils; import org.apache.poi.xwpf.usermodel.*; -import org.jetbrains.annotations.NotNull; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.io.ClassPathResource; import org.springframework.mock.web.MockMultipartFile; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; @@ -71,13 +70,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.CompletableFuture; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; @@ -104,14 +100,9 @@ private InsOrderStateMapper insOrderStateMapper; @Resource private InsProductMapper insProductMapper; - @Resource - private ShiftTimeMapper shiftTimeMapper; - @Resource - private PerformanceShiftMapper performanceShiftMapper; + @Value("${wordUrl}") private String wordUrl; - @Value("${twoCode}") - private String twoCode; @Resource private InsReportMapper insReportMapper; @Resource @@ -148,8 +139,7 @@ private InsOrderFactoryVerifyMapper insOrderFactoryVerifyMapper; @Resource private InsOrderFactoryVerifyItemService insOrderFactoryVerifyItemService; - @Value("${file.licenseUrl}") - private String licenseUrl; + @Resource private SpotCheckQuarterItemMapper spotCheckQuarterItemMapper; @Resource @@ -160,32 +150,23 @@ private InsOrderDeviceRecordService insOrderDeviceRecordService; @Resource private ISysDictTypeService iSysDictTypeService; - + @Resource + private InsOrderRatesService insOrderRatesService; @Override public IPage<InsOrderPlanVO> selectInsOrderPlanList(Page page, InsOrderPlanDTO insOrderPlanDTO) { - // todo: 浠呯湅鑷繁鎴栬�呭疄楠屽 - //鑾峰彇褰撳墠浜烘墍灞炲疄楠屽id - - String laboratory = null; - - String userName = null; - Integer userId = null; - if (ObjectUtil.isNotEmpty(insOrderPlanDTO.getUserId())) { - userId = SecurityUtils.getUserId().intValue(); - userName = userMapper.selectById(userId).getName(); + // 妫�娴嬬鐞嗕汉鍛樺叏鏌ワ紝闈炴娴嬬鐞嗕汉鍛樺彧鏌ョ湅鑷繁鐨� + InsOrderPlanQueryDto insOrderPlanQueryDto = new InsOrderPlanQueryDto(); + insOrderPlanQueryDto.setCheckUserFlag(SecurityUtils.hasRole("inspector")); + insOrderPlanQueryDto.setTestAdminFlag(SecurityUtils.hasRole("testadmin")); + // 鍒ゆ柇鏄惁瑙﹀彂鍙煡鐪嬭嚜宸� + if(null != insOrderPlanDTO.getUserId()){ + insOrderPlanQueryDto.setViewMySelfFlag(true); insOrderPlanDTO.setUserId(null); } - Integer isCheck = insOrderPlanDTO.getIsCheck(); - insOrderPlanDTO.setIsCheck(null); - String sonLaboratory = insOrderPlanDTO.getSonLaboratory();//璇曢獙瀹� + insOrderPlanQueryDto.setUserId(SecurityUtils.getUserId().intValue()); IPage<InsOrderPlanVO> insOrderPage = insSampleMapper.findInsSampleAndOrder(page, - QueryWrappers.queryWrappers(insOrderPlanDTO), - userName, - userId, - sonLaboratory, - laboratory, - isCheck); + QueryWrappers.queryWrappers(insOrderPlanDTO),insOrderPlanQueryDto); return insOrderPage; } @@ -234,17 +215,19 @@ // 鏌ヨ鍘傚瀵嗗害 String supplierDensity = ""; - SampleProductDto sampleProductDto = list.get(0); + if (CollectionUtils.isNotEmpty(list)) { + SampleProductDto sampleProductDto = list.get(0); - // 鍒ゆ柇鏈夋病鏈夌粦瀹氬瀷鍙� - String modelValue = insSampleMapper.selectSupplierDensityModel(sampleProductDto.getSample(), - order.getProduction(), - sampleProductDto.getModel()); - if (StringUtils.isNotBlank(modelValue)) { - supplierDensity = modelValue; - } else { - supplierDensity = insSampleMapper.selectSupplierDensity(sampleProductDto.getSample(), - order.getProduction()); + // 鍒ゆ柇鏈夋病鏈夌粦瀹氬瀷鍙� + String modelValue = insSampleMapper.selectSupplierDensityModel(sampleProductDto.getSample(), + order.getProduction(), + sampleProductDto.getModel()); + if (StringUtils.isNotBlank(modelValue)) { + supplierDensity = modelValue; + } else { + supplierDensity = insSampleMapper.selectSupplierDensity(sampleProductDto.getSample(), + order.getProduction()); + } } map.put("supplierDensity", supplierDensity); return map; @@ -367,7 +350,7 @@ insContext.forEach((k, v) -> { JSONObject jo = JSON.parseObject(JSON.toJSONString(v)); InsProduct insProduct = new InsProduct(); - insProduct.setId(Integer.parseInt(k)); + insProduct.setId(Long.valueOf(Integer.parseInt(k))); InsProduct product = insProductMapper.selectById(insProduct.getId()); if (currentTable.equals(product.getTemplateId()) && currentSampleId.equals(product.getInsSampleId())) { List<InsProductResult> oldResults = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery() @@ -474,7 +457,7 @@ insProduct.setUpdateUser(userId); insProductMapper.updateById(insProduct); - insProductUserMapper.insert(new InsProductUser(null, userId, LocalDateTime.now(), insProduct.getId())); + insProductUserMapper.insert(new InsProductUser(null, userId, LocalDateTime.now(), Math.toIntExact(insProduct.getId()))); insSample.setInsState(1); Long l = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery() @@ -749,7 +732,7 @@ @Transactional(rollbackFor = Exception.class) public int submitPlan(Integer orderId, String laboratory, Integer verifyUser, String entrustCode) { InsOrder order = insOrderMapper.selectById(orderId); - // 鍒ゆ柇鏄惁鏈夐噸澶嶇紪鍙�, 鏈夐噸澶嶇紪鍙峰仛鎻愰啋 + // 1. 鍒ゆ柇鏄惁鏈夐噸澶嶇紪鍙�, 鏈夐噸澶嶇紪鍙峰仛鎻愰啋 Long codeCount = insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery() .ne(InsOrder::getState, -1) .ne(InsOrder::getIfsInventoryId, order.getIfsInventoryId()) @@ -758,7 +741,7 @@ throw new ErrorException("褰撳墠缂栧彿鏈夐噸澶�, 璇峰厛鍘讳慨鏀归噸澶嶇紪鍙�"); } - // 鍒ゆ柇璇ヨ鍗曟槸鍚︽槸绗竴娆$敓浜� + // 2. 鍒ゆ柇璇ヨ鍗曟槸鍚︽槸绗竴娆$敓浜�(鍚庣画鎶ュ憡鐢熸垚鍙彇绗竴娆℃彁浜ゆ椂闂�) if (!(order.getIsFirstSubmit() != null && order.getIsFirstSubmit().equals(1))) { insOrderMapper.update(null, Wrappers.<InsOrder>lambdaUpdate() .eq(InsOrder::getId, orderId) @@ -766,11 +749,12 @@ .set(InsOrder::getFirstSubmitDate, LocalDateTime.now())); } + // 3. 鍒ゆ柇鏄惁鏈夋湭妫�椤� 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> InsSampleIds = insSamples.stream().map(InsSample::getId).collect(Collectors.toList()); List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .in(InsProduct::getInsSampleId, ids) + .in(InsProduct::getInsSampleId, InsSampleIds) .eq(InsProduct::getSonLaboratory, laboratory) .eq(InsProduct::getState, 1) .and(wrapper -> wrapper @@ -778,37 +762,37 @@ .or() .eq(InsProduct::getInsResult, 2) ) - .isNull(InsProduct::getInsFiberId) - .isNull(InsProduct::getInsFibersId) .ne(InsProduct::getIsBinding, 1)); - insProducts.addAll(insProductMapper.selectFiberInsProduct(ids, laboratory)); + insProducts.addAll(insProductMapper.selectFiberInsProduct(InsSampleIds, laboratory)); if (insProducts.size() > 0) { String str = ""; int count = 0; for (InsProduct product : insProducts) { count++; - str += "<br/>" + count + "锛�" + product.getInspectionItem() + " " + product.getInspectionItemSubclass() + "<br/>"; - + str += (count != 0 ? "\n" : "") + count + "锛�" + + product.getInspectionItemClass() + " " + + product.getInspectionItem() + " " + + product.getInspectionItemSubclass(); } if (ObjectUtils.isNotEmpty(str)) { - throw new ErrorException("<strong>瀛樺湪寰呮楠岀殑椤圭洰锛�</strong><br/>" + str); + throw new ErrorException("瀛樺湪寰呮楠岀殑椤圭洰锛�" + str); } } + + // 4.淇敼妫�娴嬬粨鏋� insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate().eq(InsOrderState::getInsOrderId, orderId) .eq(InsOrderState::getLaboratory, laboratory) .set(InsOrderState::getInsTime, LocalDateTime.now()) .set(InsOrderState::getInsState, 3) .set(InsOrderState::getVerifyUser, verifyUser)); - // 鍙戦�佹秷鎭� + + // 5.鍙戦�佹秷鎭�氱煡缁欏鏍镐汉 // 鏌ヨ褰撳墠浜轰俊鎭� Integer userId = SecurityUtils.getUserId().intValue(); String userName = insProductMapper.selectUserById(userId).get("name"); - // 鏌ヨ鍙戦�佷汉淇℃伅 String sendUserAccount = insProductMapper.selectUserById(verifyUser).get("account"); - - InformationNotification info = new InformationNotification(); info.setCreateUser(userName); info.setMessageType("2"); @@ -817,20 +801,21 @@ info.setSenderId(userId); info.setConsigneeId(verifyUser); info.setViewStatus(false); - info.setJumpPath("b1-inspect-orderPlan-review"); + info.setJumpPath(MenuJumpPathConstants.INSPECTION_REVIEW); informationNotificationService.addInformationNotification(info); - //澶嶆牳浜�--妫�楠屽崟鐩稿叧璐熻矗浜� + // 6.澶嶆牳浜�--鏂板妫�楠屽崟鐩稿叧璐熻矗浜� InsSampleUser insSampleUser = new InsSampleUser(); insSampleUser.setUserId(verifyUser); insSampleUser.setInsSampleId(orderId); insSampleUser.setState(1); insSampleUser.setSonLaboratory(laboratory); insSampleUserMapper.insert(insSampleUser); - /*鏍¢獙涓�涓媟esult琛�*/ - CompletableFuture.supplyAsync(() -> { - List<Integer> ips = insProducts.stream().map(InsProduct::getId).distinct().collect(Collectors.toList()); - for (Integer ip : ips) { + + // 7.鏍¢獙涓�涓媟esult琛�(閬垮厤鍑虹幇澶氫釜妫�楠岄」缁撴灉) + threadPoolTaskExecutor.execute(() -> { + List<Long> ips = insProducts.stream().map(InsProduct::getId).distinct().collect(Collectors.toList()); + for (Long ip : ips) { List<InsProductResult> insProductResults = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery() .eq(InsProductResult::getInsProductId, ip)); if (insProductResults.size() > 1) { @@ -839,26 +824,116 @@ } } } - return null; }); - // 鎻愪氦鐢熸垚鎶ュ憡 + // 8.鎻愪氦鐢熸垚鎶ュ憡 this.generateReport(orderId); - // 娣诲姞涓存椂pdf鐢熸垚鍦板潃 + // 9.娣诲姞涓存椂pdf鐢熸垚鍦板潃 InsReport report = insReportMapper.selectOne(Wrappers.<InsReport>lambdaQuery() .eq(InsReport::getInsOrderId, orderId)); String tempUrlPdf = this.wordToPdfTemp(report.getUrl().replace("/word", wordUrl)); report.setTempUrlPdf("/word/" + tempUrlPdf); insReportMapper.updateById(report); - // 鏌ヨ璁㈠崟 + // 10.鍘熷璁板綍妯℃澘澶嶅埗(娣诲姞澶囦唤, 閬垮厤淇敼鍘熷妯℃澘褰卞搷鍒板凡缁忓畬鎴愮殑鍗曞瓙) + this.templateCopy(orderId, InsSampleIds); + + // 11.鎴愬搧鎶芥牱娣诲姞鍚堟牸鐘舵�� + // 鍒ゆ柇鏄惁鏈夋娊鏍蜂俊鎭� + if (order.getQuarterItemId() != null) { + // 鍒ゆ柇鏄惁鏈変笉鍚堟牸 + this.addProductSpotCheck(insSamples, order); + } + + // 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); + + // 13.娣诲姞璁㈠崟璐圭敤缁熻淇℃伅 + List<InsProduct> productList = insProductMapper.selectProductByOrderId(orderId); + // 鍒犻櫎鍘熸湰璐圭敤淇℃伅 + insOrderRatesService.remove(Wrappers.<InsOrderRates>lambdaQuery() + .eq(InsOrderRates::getInsOrderId, orderId)); + List<InsOrderRates> orderRatesList = productList.stream().map(insProduct -> { + InsOrderRates insOrderRates = new InsOrderRates(); + insOrderRates.setInsOrderId(orderId); + insOrderRates.setInsSampleId(insProduct.getInsSampleId()); + insOrderRates.setInsProductId(Math.toIntExact(insProduct.getId())); + insOrderRates.setSampleCode(insProduct.getSampleCode()); + insOrderRates.setEntrustCode(order.getEntrustCode()); + insOrderRates.setInspectionItemClass(insProduct.getInspectionItemClass()); + insOrderRates.setInspectionItem(insProduct.getInspectionItem()); + insOrderRates.setInspectionItemSubclass(insProduct.getInspectionItemSubclass()); + insOrderRates.setCableTag(insProduct.getCableTag()); + insOrderRates.setRates(insProduct.getRates()); + insOrderRates.setManHourGroup(insProduct.getManHourGroup()); + return insOrderRates; + }).collect(Collectors.toList()); + insOrderRatesService.saveBatch(orderRatesList); + + + // 14.鍙戦�佷紒涓氬井淇¢�氱煡 + // 鏌ヨ鍘熸潗鏂� + IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(order.getIfsInventoryId()); + // 鏌ヨ鏍峰搧淇℃伅 InsSample insSample = insSampleMapper.selectOne(Wrappers.<InsSample>lambdaQuery() .eq(InsSample::getInsOrderId, orderId) .last("limit 1")); - // 鏌ヨ鍘熸潗鏂� - IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(order.getIfsInventoryId()); + threadPoolTaskExecutor.execute(() -> { + String message = ""; + message += "妫�楠屼换鍔″鏍搁�氱煡"; + message += "\n鎻愪氦浜�: " + userName; + message += "\n濮旀墭缂栧彿: " + order.getEntrustCode(); + message += "\n鏍峰搧鍚嶇О: " + insSample.getModel(); + message += "\n瑙勬牸鍨嬪彿: " + order.getPartDetail(); + if (ifsInventoryQuantity != null) { + message += "\n鎵规鍙�: " + ifsInventoryQuantity.getUpdateBatchNo(); + } + //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡 鎻愪氦澶嶆牳 + try { + WxCpUtils.inform(sendUserAccount, message, null); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); + // 15.ifs绉诲簱(鍘熸潗鏂欓渶瑕佽繘琛岀Щ搴撴搷浣�) --> 鏈�鍚庢墽琛�,鍥犱负澶辫触鏃犳硶鍥炴粴 + if (ifsInventoryQuantity != null) { + // 鐧昏妫�楠岀粨鏋� + // 鍒ゆ柇鏄惁鏈変笉鍚堟牸, 鏈変笉鍚堟牸涓嶈兘绉诲簱 + // todo: ifs绉诲簱 + insReportService.isRawMaterial(order); + } else { + // 淇敼鎴愬搧鐘舵�� + // 鍒ゆ柇鏄惁鏈変笉鍚堟牸 + Long unqualifiedCount = insReportService.getUnqualifiedCount(order); + if (unqualifiedCount.equals(0L)) { + insOrderMapper.update(null, Wrappers.<InsOrder>lambdaUpdate() + .eq(InsOrder::getId, order.getId()) + .set(InsOrder::getInsResult, 1)); + } else { + insOrderMapper.update(null, Wrappers.<InsOrder>lambdaUpdate() + .eq(InsOrder::getId, order.getId()) + .set(InsOrder::getInsResult, 0)); + } + } + + return 1; + } + + private void templateCopy(Integer orderId, List<Integer> ids) { // 鍒犻櫎鍘熸湰妯℃澘 insOrderStandardTemplateService.remove(Wrappers.<InsOrderStandardTemplate>lambdaQuery() .eq(InsOrderStandardTemplate::getInsOrderId, orderId)); @@ -883,99 +958,6 @@ } } } - - // 娣诲姞宸ユ椂 - // 鍒犻櫎鍘熸湰璁㈠崟宸ユ椂 - 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) { - // 鍒ゆ柇鏄惁鏈変笉鍚堟牸 - Long unqualifiedCount = 0L; - if (CollectionUtils.isNotEmpty(insSamples)) { - unqualifiedCount = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery() - .in(InsProduct::getInsSampleId, insSamples.stream().map(InsSample::getId).collect(Collectors.toList())) - .eq(InsProduct::getInsResult, 0)); - - // 鍒ゆ柇濡傛灉鏈変笉鍚堟牸鐨勬楠岄」, 鍒ゆ柇鏈夋病鏈夋楠岄」澶嶆祴, 澶嶆牳鍚堟牸涔熺畻鍚堟牸閫氳繃 - if (!unqualifiedCount.equals(0L)) { - List<InsProduct> productList = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .in(InsProduct::getInsSampleId, insSamples.stream().map(InsSample::getId).collect(Collectors.toList())) - .eq(InsProduct::getInsResult, 0)); - - boolean flag = true; - for (InsProduct insProduct : productList) { - Long unqualifiedProductCount = insUnqualifiedRetestProductMapper.selectCount(Wrappers.<InsUnqualifiedRetestProduct>lambdaQuery() - .eq(InsUnqualifiedRetestProduct::getInsProductId, insProduct.getId()) - .ne(InsUnqualifiedRetestProduct::getInsResult, 0)); - if (unqualifiedProductCount != 2) { - flag = false; - } - } - if (flag) { - unqualifiedCount = 0L; - } - } - } - spotCheckQuarterItemMapper.update(null, Wrappers.<SpotCheckQuarterItem>lambdaUpdate() - .eq(SpotCheckQuarterItem::getQuarterItemId, order.getQuarterItemId()) - .set(SpotCheckQuarterItem::getResult, unqualifiedCount.equals(0L) ? "鍚堟牸" : "涓嶅悎鏍�")); - - } - - // 鍙戦�佷紒涓氬井淇¢�氱煡 - threadPoolTaskExecutor.execute(() -> { - String message = ""; - message += "妫�楠屼换鍔″鏍搁�氱煡"; - message += "\n鎻愪氦浜�: " + userName; - message += "\n濮旀墭缂栧彿: " + order.getEntrustCode(); - message += "\n鏍峰搧鍚嶇О: " + insSample.getModel(); - message += "\n瑙勬牸鍨嬪彿: " + order.getPartDetail(); - if (ifsInventoryQuantity != null) { - message += "\n鎵规鍙�: " + ifsInventoryQuantity.getUpdateBatchNo(); - } - //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡 鎻愪氦澶嶆牳 - try { - WxCpUtils.inform(sendUserAccount, message, null); - } catch (Exception e) { - throw new RuntimeException(e); - } - }); - - // ifs绉诲簱 - if (ifsInventoryQuantity != null) { - // 鐧昏妫�楠岀粨鏋� - // 鍒ゆ柇鏄惁鏈変笉鍚堟牸, 鏈変笉鍚堟牸涓嶈兘绉诲簱 - // todo: ifs绉诲簱 - insReportService.isRawMaterial(order); - } else { - // 淇敼鎴愬搧鐘舵�� - // 鍒ゆ柇鏄惁鏈変笉鍚堟牸 - Long unqualifiedCount = insReportService.getUnqualifiedCount(order); - if (unqualifiedCount.equals(0L)) { - insOrderMapper.update(null, Wrappers.<InsOrder>lambdaUpdate() - .eq(InsOrder::getId, order.getId()) - .set(InsOrder::getInsResult, 1)); - } else { - insOrderMapper.update(null, Wrappers.<InsOrder>lambdaUpdate() - .eq(InsOrder::getId, order.getId()) - .set(InsOrder::getInsResult, 0)); - } - } - - return 1; } @@ -1550,7 +1532,8 @@ // 妫�娴嬩緷鎹� Set<String> standardMethod = new HashSet<>(); StringBuilder standardMethod2 = new StringBuilder(); - standardMethod.add(baseMapper.getStandardMethodCode(insSample.getStandardMethodListId())); + // TODO 妫�楠岀殑瀵硅薄鐨勬楠屾爣鍑嗙敱涓�涓涓� 鏁版嵁绫诲瀷鐢眎nt鍙樺瓧绗︿覆 闇�瑕侀噸鍐欏啓杩欏潡閫昏緫 +// standardMethod.add(baseMapper.getStandardMethodCode(insSample.getStandardMethodListId())); for (String s : standardMethod) { standardMethod2.append("銆�").append(s); } @@ -2094,7 +2077,9 @@ samples.forEach(a -> { Map<Integer, String> map2 = new HashMap<>(); models.add(a.getModel()); - String standardMethodCode = baseMapper.getStandardMethodCode(a.getStandardMethodListId()); + // TODO 妫�楠岀殑瀵硅薄鐨勬楠屾爣鍑嗙敱涓�涓涓� 鏁版嵁绫诲瀷鐢眎nt鍙樺瓧绗︿覆 闇�瑕侀噸鍐欏啓杩欏潡閫昏緫 +// String standardMethodCode = baseMapper.getStandardMethodCode(a.getStandardMethodListId()); + String standardMethodCode = ""; if (StrUtil.isNotBlank(a.getSpecialStandardMethod())) { standardMethodCode = standardMethodCode + "+" + a.getSpecialStandardMethod(); } @@ -4040,7 +4025,7 @@ } /** - * 淇濆瓨鍏冩闃块噷杩涜揣楠岃瘉鍘熷璁板綍 + * *****淇濆瓨鍏冩闃块噷杩涜揣楠岃瘉鍘熷璁板綍***** * @param insOrderId 璁㈠崟Id * @param examineUserId 澶嶆牳浜篒d * @param writeUserId 妫�楠屽憳Id @@ -4190,7 +4175,7 @@ /** - * 鏍煎紡鍖栬繘鍘傞獙璇佸唴瀹� + * ***鏍煎紡鍖栬繘鍘傞獙璇佸唴瀹�**** * @param basicType * @return */ @@ -4219,7 +4204,7 @@ } /** - * word杞崲pdf + * ***word杞崲pdf*** * @param path * @return */ @@ -4236,11 +4221,10 @@ FileOutputStream os = null; try { //鍑瘉 涓嶇劧鍒囨崲鍚庢湁姘村嵃 - InputStream is = Files.newInputStream(new File(licenseUrl).toPath()); + InputStream is = new ClassPathResource("/lib/license.xml").getInputStream(); License license = new License(); license.setLicense(is); if (!license.getIsLicensed()) { - System.out.println("License楠岃瘉涓嶉�氳繃..."); return null; } //鐢熸垚涓�涓┖鐨凱DF鏂囦欢 @@ -4267,4 +4251,41 @@ return null; } + /** + * *****淇敼鎴愬搧鎶芥牱鐘舵��****** + * @param insSamples + * @param order + */ + private void addProductSpotCheck(List<InsSample> insSamples, InsOrder order) { + Long unqualifiedCount = 0L; + if (CollectionUtils.isNotEmpty(insSamples)) { + unqualifiedCount = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery() + .in(InsProduct::getInsSampleId, insSamples.stream().map(InsSample::getId).collect(Collectors.toList())) + .eq(InsProduct::getInsResult, 0)); + + // 鍒ゆ柇濡傛灉鏈変笉鍚堟牸鐨勬楠岄」, 鍒ゆ柇鏈夋病鏈夋楠岄」澶嶆祴, 澶嶆牳鍚堟牸涔熺畻鍚堟牸閫氳繃 + if (!unqualifiedCount.equals(0L)) { + List<InsProduct> productList = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() + .in(InsProduct::getInsSampleId, insSamples.stream().map(InsSample::getId).collect(Collectors.toList())) + .eq(InsProduct::getInsResult, 0)); + + boolean flag = true; + for (InsProduct insProduct : productList) { + Long unqualifiedProductCount = insUnqualifiedRetestProductMapper.selectCount(Wrappers.<InsUnqualifiedRetestProduct>lambdaQuery() + .eq(InsUnqualifiedRetestProduct::getInsProductId, insProduct.getId()) + .ne(InsUnqualifiedRetestProduct::getInsResult, 0)); + if (unqualifiedProductCount != 2) { + flag = false; + } + } + if (flag) { + unqualifiedCount = 0L; + } + } + } + spotCheckQuarterItemMapper.update(null, Wrappers.<SpotCheckQuarterItem>lambdaUpdate() + .eq(SpotCheckQuarterItem::getQuarterItemId, order.getQuarterItemId()) + .set(SpotCheckQuarterItem::getResult, unqualifiedCount.equals(0L) ? "鍚堟牸" : "涓嶅悎鏍�")); + } + } -- Gitblit v1.9.3