From e05875fa75605595b192fca04e598598cb2f2931 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期五, 13 九月 2024 17:45:07 +0800 Subject: [PATCH] 代码优化+检验下单新增字段下发至对象 --- inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java | 272 +++++++++++++----------------------------------------- 1 files changed, 67 insertions(+), 205 deletions(-) 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 91912bb..ea2c45c 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 @@ -33,8 +33,14 @@ import com.yuanchu.mom.utils.*; import com.yuanchu.mom.vo.*; import org.apache.commons.io.IOUtils; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xwpf.usermodel.*; import org.springframework.beans.factory.annotation.Value; +import org.springframework.mock.web.MockMultipartFile; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; @@ -127,18 +133,6 @@ private String imgUrl; @Resource - private InsBushingService insBushingService; - - @Resource - private InsBushingMapper insBushingMapper; - - @Resource - private InsFiberMapper insFiberMapper; - - @Resource - private InsFibersMapper insFibersMapper; - - @Resource private InsOrderFileMapper insOrderFileMapper; @Override @@ -229,10 +223,6 @@ } Map<String, Object> map = insOrderService.getInsOrderAndSample(id, laboratory); List<SampleProductDto> list = JSON.parseArray(JSON.toJSONString(map.get("sampleProduct")), SampleProductDto.class); - for (SampleProductDto samples : list) { - if (BeanUtil.isEmpty(samples.getInsProduct())) continue; - samples.setBushing(insBushingService.selectBushingBySampleId(samples.getId())); - } map.put("sampleProduct", list); return map; } @@ -244,7 +234,7 @@ case 0: //鏍峰搧 insProducts = insSampleMapper.getInsProduct1(id, laboratory); - if (insProducts.size()==0){ + if (insProducts.size() == 0) { insProducts = insSampleMapper.getIns2Product1(id, laboratory); } break; @@ -266,12 +256,15 @@ } @Override - public List<InsProduct> getInsProduct2(Integer id, Integer type, String laboratory, HttpServletRequest request,Integer num) { + public List<InsProduct> getInsProduct2(Integer id, Integer type, String laboratory, HttpServletRequest request, Integer num) { List<InsProduct> insProducts = new ArrayList<>(); switch (type) { case 0: //鏍峰搧 - insProducts = insSampleMapper.get2InsProduct1(id, laboratory,num); + insProducts = insSampleMapper.get2InsProduct1(id, laboratory, num); + if (insProducts.size() == 0) { + throw new ErrorException("褰撳墠妫�楠屾暟鎹繕娌℃湁淇濆瓨,淇濆瓨涔嬪悗鏈夋暟鎹巻鍙�"); + } break; case 1: //鍏夌氦甯� @@ -353,185 +346,6 @@ } } - //鍒囨崲璁板綍妯$増鏌ヨ妫�楠屽唴瀹� - @Override - public Map<String, Object> getReportModel(Integer sampleId) { - Map<String, Object> map = new HashMap<>(); - //鍏堟煡鍑哄绠� - List<InsBushing> insBushings = insBushingMapper.selectList(Wrappers.<InsBushing>lambdaQuery().eq(InsBushing::getInsSampleId, sampleId)); - List<InsFibers> fibers = new ArrayList<>(); - List<InsFiber> fiber = new ArrayList<>(); - List<InsBushing> bush = new ArrayList<>(); - for (InsBushing insBushing : insBushings) { - //鍐嶆煡璇㈠嚭鎵�鏈夌殑鍏夌氦甯� - List<InsFibers> insFibers = insFibersMapper.selectList(Wrappers.<InsFibers>lambdaQuery().eq(InsFibers::getInsBushingId, insBushing.getId())); - List<InsFiber> insFiberList = insFiberMapper.selectList(Wrappers.<InsFiber>lambdaQuery().eq(InsFiber::getInsBushingId, insBushing.getId())); - if (CollectionUtils.isNotEmpty(insFibers)) { - for (InsFibers insFiber : insFibers) { - List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getInsFibersId, insFiber.getId())); - List<Integer> collect = insProducts.stream().map(InsProduct::getInsResult) - .filter(sm -> ObjectUtils.isNotEmpty(sm) && sm != 2).collect(Collectors.toList()); - if (insProducts.size() == collect.size()) { - insFiber.setState(1);//宸叉楠� - } else { - insFiber.setState(0);//鏈楠� - } - } - fibers.addAll(insFibers); - //鏌ュ嚭鍏夌氦甯︿笅鎵�鏈夌殑鍏夌氦 - List<InsFiber> fiberList = insFiberMapper.selectList(Wrappers.<InsFiber>lambdaQuery().in(InsFiber::getInsFibersId, insFibers.stream().map(InsFibers::getId).collect(Collectors.toList()))); - for (InsFiber insFiber : fiberList) { - List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getInsFiberId, insFiber.getId())); - List<Integer> collect = insProducts.stream().map(InsProduct::getInsResult) - .filter(sm -> ObjectUtils.isNotEmpty(sm) && sm != 2).collect(Collectors.toList()); - if (insProducts.size() == collect.size()) { - insFiber.setState(1);//宸叉楠� - } else { - insFiber.setState(0);//鏈楠� - } - } - fiber.addAll(fiberList); - } - //濡傛灉濂楃涓嬫病鏈夊厜绾ゅ甫灏卞彧鏈夊厜绾や簡 - else if (CollectionUtils.isNotEmpty(insFiberList)) { - for (InsFiber insFiber : insFiberList) { - List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getInsFiberId, insFiber.getId())); - List<Integer> collect = insProducts.stream().map(InsProduct::getInsResult) - .filter(sm -> ObjectUtils.isNotEmpty(sm) && sm != 2).collect(Collectors.toList()); - if (insProducts.size() == collect.size()) { - insFiber.setState(1);//宸叉楠� - } else { - insFiber.setState(0);//鏈楠� - } - } - fiber.addAll(insFiberList); - } - //濡傛灉鍏夌氦甯﹀拰鍏夌氦閮芥病鏈夊氨鍙湁濂楃(鏉惧绠�) - else { - List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsBushId, insBushing.getId())); - List<Integer> collect = insProducts.stream() - .map(InsProduct::getInsResult) - .filter(sm -> ObjectUtils.isNotEmpty(sm) && sm != 2).collect(Collectors.toList()); - if (insProducts.size() == collect.size()) { - insBushing.setState(1);//宸叉楠� - } else { - insBushing.setState(0);//鏈楠� - } - bush.add(insBushing); - } - } - map.put("鍏夌氦甯�", fibers); - map.put("鍏夌氦", fiber); - map.put("濂楃", bush); - return map; - } - - //娓╁害寰幆鏌ョ湅鍒楄〃鏁版嵁(鍖呮嫭閫氳繃鏍峰搧id,寰幆娆℃暟,娓╁害,寰幆娆℃暟杩涜绛涢��) - @Override - public Map<String, Object> temCycle(Integer sampleId, String inspectionItem, String inspectionItemSubclass) { - Map<String, Object> map = new HashMap<>(); - //鏍峰搧淇℃伅 - SampleVo sampleVo = insSampleMapper.getDetailById(sampleId); - map.put("sampleVo", sampleVo); - List<ProductVo> productVos = new ArrayList<>(); - //鍏堟煡鍑鸿繖涓牱鍝佷笅鏈夊摢浜涚鑹叉爣,鍏夌氦甯�,鍏夌氦鑹叉爣 - //鍏堟煡鍑哄绠� - List<InsBushing> insBushings = insBushingMapper.selectList(Wrappers.<InsBushing>lambdaQuery().eq(InsBushing::getInsSampleId, sampleId)); - if (insBushings.size() > 0) { - //閫氫俊--娓╁害寰幆 - for (InsBushing insBushing : insBushings) { - //鍐嶆煡璇㈠嚭鎵�鏈夌殑鍏夌氦甯� - List<InsFibers> insFibers = insFibersMapper.selectList(Wrappers.<InsFibers>lambdaQuery().eq(InsFibers::getInsBushingId, insBushing.getId())); - if (CollectionUtils.isNotEmpty(insFibers)) { - for (InsFibers insFiber : insFibers) { - //鏌ュ嚭鍏夌氦甯︿笅鎵�鏈夌殑鍏夌氦 - List<InsFiber> fiberList = insFiberMapper.selectList(Wrappers.<InsFiber>lambdaQuery().eq(InsFiber::getInsFibersId, insFiber.getId())); - for (InsFiber fiber : fiberList) { - //鍐嶆牴鎹叧鑱旂殑鍏夌氦閰嶇疆鐨刬d鍜屽惊鐜鏁板拰娓╁害鍜屾牱鍝乮d杩涜鏌ヨ妫�楠岄」鐩� - List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsSampleId, sampleId) - .eq(InsProduct::getInspectionItem, inspectionItem) - .eq(InsProduct::getInspectionItemSubclass, inspectionItemSubclass) - .eq(InsProduct::getInsFiberId, fiber.getId())); - for (InsProduct insProduct : insProducts) { - InsProductResult insProductResult = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery() - .eq(InsProductResult::getInsProductId, insProduct.getId())); - ProductVo productVo = new ProductVo(); - productVo.setCode(insFiber.getCode()); - productVo.setColor(fiber.getColor()); - productVo.setBushColor(insBushing.getColor()); - if (ObjectUtils.isNotEmpty(insProductResult)) { - insProduct.setInsProductResult(insProductResult); - } - //姹傚悓绛夋潯浠朵笅1娆″惊鐜�20搴﹀父娓╃殑璁$畻鍊� - InsProductResult insProductResult1 = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, insProductMapper.selectOne(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsSampleId, sampleId) - .eq(InsProduct::getInspectionItem, "1") - .eq(InsProduct::getInspectionItemSubclass, "20鈩�(甯告俯)") - .eq(InsProduct::getInspectionItemClass, insProduct.getInspectionItemClass()) - .eq(InsProduct::getInsFiberId, fiber.getId())).getId())); - if (ObjectUtils.isNotEmpty(insProductResult1) && !insProductResult1.getComValue().equals("[]")) { - insProduct.setComplue(insProductResult1.getComValue().split(":")[1].split("\"")[1]); - } - productVo.setInsProduct(insProduct); - productVos.add(productVo); - } - } - } - } else { - //濡傛灉濂楃涓嬫病鏈夊厜绾ゅ甫灏卞彧鏈夊厜绾や簡 - List<InsFiber> insFiberList = insFiberMapper.selectList(Wrappers.<InsFiber>lambdaQuery().eq(InsFiber::getInsBushingId, insBushing.getId())); - for (InsFiber fiber : insFiberList) { - //鍐嶆牴鎹叧鑱旂殑鍏夌氦閰嶇疆鐨刬d鍜屽惊鐜鏁板拰娓╁害鍜屾牱鍝乮d杩涜鏌ヨ妫�楠岄」鐩� - List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsSampleId, sampleId) - .eq(InsProduct::getInspectionItem, inspectionItem) - .eq(InsProduct::getInspectionItemSubclass, inspectionItemSubclass) - .eq(InsProduct::getInsFiberId, fiber.getId())); - for (InsProduct insProduct : insProducts) { - InsProductResult insProductResult = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, insProduct.getId())); - ProductVo productVo = new ProductVo(); - productVo.setCode("-"); - productVo.setColor(fiber.getColor()); - productVo.setBushColor(fiber.getBushColor()); - insProduct.setInsProductResult(insProductResult); - //姹傚悓绛夋潯浠朵笅1娆″惊鐜�20搴﹀父娓╃殑璁$畻鍊� - InsProductResult insProductResult1 = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, insProductMapper.selectOne(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsSampleId, sampleId) - .eq(InsProduct::getInspectionItem, "1") - .eq(InsProduct::getInspectionItemSubclass, "20鈩�(甯告俯)") - .eq(InsProduct::getInspectionItemClass, insProduct.getInspectionItemClass()) - .eq(InsProduct::getInsFiberId, fiber.getId())).getId())); - if (ObjectUtils.isNotEmpty(insProductResult1) && !insProductResult1.getComValue().equals("[]")) { - insProduct.setComplue(insProductResult1.getComValue().split(":")[1].split("\"")[1]); - } - productVo.setInsProduct(insProduct); - productVos.add(productVo); - } - } - } - } - productVos = productVos.stream().sorted(Comparator.comparing(productVo -> productVo.getInsProduct().getInspectionItemClass())).collect(Collectors.toList()); - } else { - //鐢靛姏--鐑惊鐜拰娓╁崌璇曢獙 - List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsSampleId, sampleId) - .eq(InsProduct::getInspectionItem, inspectionItem)); - for (InsProduct insProduct : insProducts) { - InsProductResult insProductResult = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId, insProduct.getId())); - ProductVo productVo = new ProductVo(); - if (ObjectUtils.isNotEmpty(insProductResult)) { - insProduct.setInsProductResult(insProductResult); - } - productVo.setInsProduct(insProduct); - productVos.add(productVo); - } - } - map.put("productVos", productVos); - return map; - } - @Override public List<String> upPlanUser2(Integer orderId) { List<Integer> sampleId = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId)).stream().map(InsSample::getId).collect(Collectors.toList()); @@ -549,7 +363,7 @@ @Override - public void saveInsContext(Map<String, Object> insContext,Integer num) { + public void saveInsContext(Map<String, Object> insContext, Integer num) { Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); CompletableFuture.supplyAsync(() -> { insContext.forEach((k, v) -> { @@ -557,6 +371,7 @@ InsProduct insProduct = new InsProduct(); insProduct.setId(Integer.parseInt(k)); List<InsProductResult> results = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery() + .eq(InsProductResult::getNum, num) .eq(InsProductResult::getInsProductId, insProduct.getId())); InsProductResult result; if (CollectionUtils.isEmpty(results)) { @@ -735,6 +550,7 @@ insSampleMapper.updateById(insSample); /*鏍¢獙涓�涓媟esult琛�*/ List<InsProductResult> insProductResults = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery() + .eq(InsProductResult::getNum, num) .eq(InsProductResult::getInsProductId, insProduct.getId())); if (insProductResults.size() > 1) { for (int i = 1; i < insProductResults.size(); i++) { @@ -1024,7 +840,7 @@ @Override @Transactional(rollbackFor = Exception.class) - public int verifyPlan(Integer orderId, String laboratory, Integer type, String tell) { + public int verifyPlan(Integer orderId, String laboratory, Integer type, String tell) throws IOException { LocalDateTime now = LocalDateTime.now(); Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); List<InsUnPass> insUnPasses = new ArrayList<>(); @@ -1158,7 +974,52 @@ .set(InsOrderState::getVerifyUser, userId)); break; } + /*澶嶆牳瀹屾垚涔嬪悗鐢熸垚浠栬嚜宸辩殑绔欑偣鎶ュ憡(浠呴檺杈愬皠璇曢獙妫�娴�(杩戝満,杩滃満)鍜岀數璺瘯楠�)*/ + /*switch (laboratory) { + case "杩戝満": + uploadFile(orderId, null); + break; + case "杩滃満": + uploadFile(orderId, null); + break; + case "鐢佃矾璇曢獙": + uploadFile(orderId, generateExcelFile(orderId,laboratory)); + break; + default: + break; + }*/ return 1; + } + + //鐢熸垚鐢佃矾璇曢獙鐨別xcel鏂囦欢 + private MultipartFile generateExcelFile(Integer orderId, String laboratory) throws IOException{ + // 鍒涘缓涓�涓猈orkbook瀵硅薄 + Workbook workbook = new XSSFWorkbook(); + + // 鍒涘缓绗竴涓猄heet + Sheet sheet1 = workbook.createSheet("Sheet1"); + Row row1 = sheet1.createRow(0); + Cell cell1 = row1.createCell(0); + cell1.setCellValue("Hello, Sheet1"); + + // 鍒涘缓绗簩涓猄heet + Sheet sheet2 = workbook.createSheet("Sheet2"); + Row row2 = sheet2.createRow(0); + Cell cell2 = row2.createCell(0); + cell2.setCellValue("Hello, Sheet2"); + + // 灏哤orkbook鍐欏叆鍒板瓧鑺傛暟缁勪腑 + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + workbook.write(outputStream); + workbook.close(); + + byte[] excelBytes = outputStream.toByteArray(); + + // 鍒涘缓MultipartFile瀵硅薄 + MultipartFile multipartFile = new MockMultipartFile( + "file", "example.xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", new ByteArrayInputStream(excelBytes)); + + return multipartFile; } private void getTemplateThing(Set<Integer> set, Map<Integer, String> map2, List<InsProduct> insProducts) { @@ -1204,10 +1065,7 @@ .isNull(InsProduct::getInsResult) .or() .eq(InsProduct::getInsResult, 2) - ) - .isNull(InsProduct::getInsFiberId) - .isNull(InsProduct::getInsFibersId)); - insProducts.addAll(insProductMapper.selectFiberInsProduct(ids, laboratory)); + )); if (insProducts.size() > 0) { String str = ""; int count = 0; @@ -1247,7 +1105,11 @@ /*濡傛灉鏄疌绫昏鍗曚笖鏄笅鍙戝埌璐ㄩ噺閮�,鍒欑洿鎺ュ鏍搁�氳繃(缁撴潫璇曢獙)*/ InsOrder insOrder = insOrderMapper.selectById(orderId); if (insOrder.getOrderType().equals("C") && insOrder.getDepartmentLims().equals("璐ㄩ噺閮�")) { - verifyPlan(orderId, laboratory, 2, null); + try { + verifyPlan(orderId, laboratory, 2, null); + } catch (IOException e) { + e.printStackTrace(); + } } else { Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); //LIMS绯荤粺娑堟伅鎺ㄩ�� -- Gitblit v1.9.3