From c5ecfd8409cd55f5cfaf1771af5ac88c173b38f3 Mon Sep 17 00:00:00 2001 From: zhangke Date: Fri, 26 Sep 2025 10:23:17 +0800 Subject: [PATCH 1/2] =?UTF-8?q?1=E3=80=81=E6=9B=B4=E6=94=B9=E5=9B=BE?= =?UTF-8?q?=E7=BA=B8=E4=B8=8A=E4=BC=A0=E5=9B=BE=E7=89=87=E7=9A=84=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/MaterialControllerService.java | 81 ++++++++++--------- .../java/com/nflg/wms/admin/DeployTest.java | 2 +- .../processor/MaterialZipImportProcessor.java | 2 +- 3 files changed, 43 insertions(+), 42 deletions(-) diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/MaterialControllerService.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/MaterialControllerService.java index 691b44cc..e726c265 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/MaterialControllerService.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/MaterialControllerService.java @@ -87,7 +87,7 @@ public class MaterialControllerService { wmsMaterial.setCreateTime(LocalDateTime.now()); wmsMaterial.setId(null); materialService.add(wmsMaterial); - }else { + } else { wmsMaterial.setUpdateBy(UserUtil.getUserName()); wmsMaterial.setUpdateTime(LocalDateTime.now()); materialService.update(wmsMaterial); @@ -113,16 +113,16 @@ public class MaterialControllerService { } public void exportSelect(HttpServletResponse response, List ids) throws IOException { - if (CollectionUtil.isEmpty(ids)){ + if (CollectionUtil.isEmpty(ids)) { exportTemplate(response); - }else { + } else { List wmsMaterials = materialService.listByIds(ids); List datas = wmsMaterials.stream().map(model -> Convert.convert(MaterialAllExcelExportDTO.class, model)).collect(Collectors.toList()); response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("图纸导出.xlsx", StandardCharsets.UTF_8)); if (CollectionUtil.isEmpty(datas)) { exportTemplate(response); - }else { + } else { new Workbook() .addSheet(new ListSheet<>(datas).setRowHeight(100)) .writeTo(response.getOutputStream()); @@ -150,24 +150,25 @@ public class MaterialControllerService { public ApiResult uploadPics(HttpServletResponse response, @Valid @NotEmpty List files) throws Exception { List pics = new ArrayList<>(); List materials = new ArrayList<>(); - for (MultipartFile file : files){ + for (MultipartFile file : files) { String name = file.getOriginalFilename(); String materialNo = name.substring(0, name.lastIndexOf(".")); BomMaterialDTO bomMaterialDTO = bomMaterialService.getMaterialInfo(materialNo); if (Objects.isNull(bomMaterialDTO)) { pics.add(name); } else { - WmsMaterial wmsMaterial=materialService.getCurrent(materialNo); - if (Objects.isNull(wmsMaterial) || !(StrUtil.isNotBlank(wmsMaterial.getImage()) && Objects.nonNull(wmsMaterial.getWeight()))){ - wmsMaterial=new WmsMaterial() + WmsMaterial wmsMaterial = materialService.getCurrent(materialNo); + if (Objects.isNull(wmsMaterial) || StrUtil.isNotBlank(wmsMaterial.getImage())) + { + wmsMaterial = new WmsMaterial() .setId(null) - .setVersion(Objects.isNull(wmsMaterial)?1:wmsMaterial.getVersion()+1) + .setVersion(Objects.isNull(wmsMaterial) ? 1 : wmsMaterial.getVersion() + 1) .setNo(bomMaterialDTO.getMaterialNo()) .setDescribe(bomMaterialDTO.getMaterialDesc()) .setDrawingNo(bomMaterialDTO.getDrawingNo()) .setCreateBy(UserUtil.getUserName()) .setCreateTime(LocalDateTime.now()); - }else { + }else{ wmsMaterial.setDescribe(bomMaterialDTO.getMaterialDesc()); wmsMaterial.setDrawingNo(bomMaterialDTO.getDrawingNo()); wmsMaterial.setUpdateBy(UserUtil.getUserName()); @@ -183,18 +184,18 @@ public class MaterialControllerService { materialService.saveOrUpdateBatch(materials); } return ApiResult.success(); - }else { - return ApiResult.error("以下图片SAP料号无效:"+StrUtil.join(",", pics)); + } else { + return ApiResult.error("以下图片SAP料号无效:" + StrUtil.join(",", pics)); } } private String buildFilePath(String fileName) { - String fileType="." + FilenameUtils.getExtension(fileName); + String fileType = "." + FilenameUtils.getExtension(fileName); return StrUtil.format("admin/{}/{}/{}/{}{}", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")), UserUtil.getUserId() , RandomUtil.randomString(4), IdUtil.fastUUID(), fileType); } - public ApiResult uploadZip(HttpServletResponse response, @Valid @NotEmpty MultipartFile file) throws Exception{ + public ApiResult uploadZip(HttpServletResponse response, @Valid @NotEmpty MultipartFile file) throws Exception { String name = file.getOriginalFilename(); VUtil.trueThrowBusinessError(!StrUtil.endWith(name, ".zip")).throwMessage("请上传zip格式的压缩包"); String url = fileUploadService.upload(buildFilePath(name), file); @@ -202,7 +203,7 @@ public class MaterialControllerService { query.setJobNameEq("图纸zip导入"); ResultDTO> result = powerJobClient.queryJob(query); if (result.isSuccess()) { - powerJobClient.runJob(result.getData().get(0).getId(),url+"|"+UserUtil.getUserName(),0); + powerJobClient.runJob(result.getData().get(0).getId(), url + "|" + UserUtil.getUserName(), 0); return ApiResult.success("任务已提交"); } else { return ApiResult.error(result.getMessage()); @@ -225,14 +226,14 @@ public class MaterialControllerService { if (checkAndImport(data)) { return ApiResult.success(); } else { - try(ByteArrayOutputStream osOut = new ByteArrayOutputStream()) { + try (ByteArrayOutputStream osOut = new ByteArrayOutputStream()) { new Workbook() .addSheet(new ListSheet<>(data)) .writeTo(osOut); - try(ByteArrayInputStream isIn = new ByteArrayInputStream(osOut.toByteArray())) { + try (ByteArrayInputStream isIn = new ByteArrayInputStream(osOut.toByteArray())) { return ApiResult.error(STATE.DataNoCheckPass, "导入文件失败", fileUploadService.upload("temp/" + DateTimeUtil.format(LocalDate.now(), "yyyyMMdd") + "/" + IdUtil.fastUUID() + ".xlsx", isIn, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")); } - }catch (Exception e){ + } catch (Exception e) { return ApiResult.error(STATE.BusinessError, "保存文件出错"); } } @@ -242,28 +243,28 @@ public class MaterialControllerService { public boolean checkAndImport(List data) { List forAdd = new ArrayList<>(); List forupdate = new ArrayList<>(); - MaterialSearchQO qo=new MaterialSearchQO(); + MaterialSearchQO qo = new MaterialSearchQO(); qo.setPageSize(Integer.MAX_VALUE); - List dbMaterials=materialService.search(qo).getRecords(); - List bomMaterials=bomMaterialService.getList(data.stream().map(MaterialExcelImportDTO::getNo).collect(Collectors.toSet())); - int index=0; + List dbMaterials = materialService.search(qo).getRecords(); + List bomMaterials = bomMaterialService.getList(data.stream().map(MaterialExcelImportDTO::getNo).collect(Collectors.toSet())); + int index = 0; for (MaterialExcelImportDTO dto : data) { - System.out.println((++index)+" 处理物料:"+dto.getNo()); + System.out.println((++index) + " 处理物料:" + dto.getNo()); WmsMaterial material = new WmsMaterial(); StringBuilder sb = new StringBuilder(); if (StrUtil.isBlank(dto.getNo())) { sb.append("SAP料号不能为空;"); } else { - BomMaterialDTO bomMaterial = bomMaterials.stream().filter(m->StrUtil.equals(dto.getNo(),m.getMaterialNo())).findFirst().orElse(null); + BomMaterialDTO bomMaterial = bomMaterials.stream().filter(m -> StrUtil.equals(dto.getNo(), m.getMaterialNo())).findFirst().orElse(null); if (Objects.isNull(bomMaterial)) { sb.append("SAP料号无效;"); } else { - MaterialVO currentMaterial = dbMaterials.stream().filter(m->StrUtil.equals(m.getNo(),dto.getNo())).findFirst().orElse(null); - if (Objects.isNull(currentMaterial) || (StrUtil.isNotBlank(currentMaterial.getImage()) && Objects.nonNull(currentMaterial.getWeight()))){ + MaterialVO currentMaterial = dbMaterials.stream().filter(m -> StrUtil.equals(m.getNo(), dto.getNo())).findFirst().orElse(null); + if (Objects.isNull(currentMaterial) || (StrUtil.isNotBlank(currentMaterial.getImage()) && Objects.nonNull(currentMaterial.getWeight()))) { material.setCreateBy(UserUtil.getUserName()); material.setCreateTime(LocalDateTime.now()); forAdd.add(material); - }else { + } else { material.setId(currentMaterial.getId()); material.setUpdateBy(UserUtil.getUserName()); material.setUpdateTime(LocalDateTime.now()); @@ -276,41 +277,41 @@ public class MaterialControllerService { } if (StrUtil.isBlank(dto.getWeight())) { sb.append("重量不能为空;"); - } else if (!NumberUtils.isCreatable(dto.getWeight())){ + } else if (!NumberUtils.isCreatable(dto.getWeight())) { sb.append("重量无效;"); - }else { + } else { material.setWeight(new BigDecimal(dto.getWeight())); } if (StrUtil.isBlank(dto.getHeight())) { sb.append("高度不能为空;"); - } else if (!NumberUtils.isCreatable(dto.getHeight())){ + } else if (!NumberUtils.isCreatable(dto.getHeight())) { sb.append("高度无效;"); - }else { + } else { material.setHeight(new BigDecimal(dto.getHeight())); } if (StrUtil.isBlank(dto.getLength())) { sb.append("长度不能为空;"); - } else if (!NumberUtils.isCreatable(dto.getLength())){ + } else if (!NumberUtils.isCreatable(dto.getLength())) { sb.append("长度无效;"); - }else { + } else { material.setLength(new BigDecimal(dto.getLength())); } if (StrUtil.isBlank(dto.getWidth())) { sb.append("宽度不能为空;"); - } else if (!NumberUtils.isCreatable(dto.getWidth())){ + } else if (!NumberUtils.isCreatable(dto.getWidth())) { sb.append("宽度无效;"); - }else { + } else { material.setWidth(new BigDecimal(dto.getWidth())); } material.setRequirement(dto.getRequirement()); dto.setError(sb.toString()); } if (data.stream().noneMatch(it -> StrUtil.isNotBlank(it.getError()))) { - if (CollectionUtil.isNotEmpty(forAdd)){ - materialService.saveBatch(forAdd,1000); + if (CollectionUtil.isNotEmpty(forAdd)) { + materialService.saveBatch(forAdd, 1000); } - if (CollectionUtil.isNotEmpty(forupdate)){ - materialService.updateBatchById(forupdate,1000); + if (CollectionUtil.isNotEmpty(forupdate)) { + materialService.updateBatchById(forupdate, 1000); } return true; } @@ -318,7 +319,7 @@ public class MaterialControllerService { } public void exportSearch(HttpServletResponse response, @Valid MaterialSearchQO request) throws IOException { - List list=materialService.searchNonPage(request); + List list = materialService.searchNonPage(request); List datas = list.stream().map(model -> Convert.convert(MaterialAllExcelExportDTO.class, model)).collect(Collectors.toList()); response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("图纸导出.xlsx", StandardCharsets.UTF_8)); diff --git a/nflg-wms-admin/src/test/java/com/nflg/wms/admin/DeployTest.java b/nflg-wms-admin/src/test/java/com/nflg/wms/admin/DeployTest.java index fa6c1c11..07def21d 100644 --- a/nflg-wms-admin/src/test/java/com/nflg/wms/admin/DeployTest.java +++ b/nflg-wms-admin/src/test/java/com/nflg/wms/admin/DeployTest.java @@ -38,7 +38,7 @@ public class DeployTest { //处理字体目录 handleDir(sshUtil, localPath, remotePath, "fonts"); //处理lib目录 - // handleDir(sshUtil, localPath, remotePath, "lib"); + handleDir(sshUtil, localPath, remotePath, "lib"); //执行脚本启动服务 sshUtil.exec("cd " + remotePath + " && ./restart.sh"); sshUtil.disconnect(); diff --git a/nflg-wms-scheduled/src/main/java/com/nflg/wms/scheduled/processor/MaterialZipImportProcessor.java b/nflg-wms-scheduled/src/main/java/com/nflg/wms/scheduled/processor/MaterialZipImportProcessor.java index c70fa044..930fb73e 100644 --- a/nflg-wms-scheduled/src/main/java/com/nflg/wms/scheduled/processor/MaterialZipImportProcessor.java +++ b/nflg-wms-scheduled/src/main/java/com/nflg/wms/scheduled/processor/MaterialZipImportProcessor.java @@ -69,7 +69,7 @@ public class MaterialZipImportProcessor implements BasicProcessor { omsLogger.error("主数据中未查找到该物料:{}", materialNo); } else { WmsMaterial wmsMaterial = materialService.getCurrent(materialNo); - if (Objects.isNull(wmsMaterial) || !(StrUtil.isNotBlank(wmsMaterial.getImage()) && Objects.nonNull(wmsMaterial.getWeight()))) { + if (Objects.isNull(wmsMaterial) || StrUtil.isNotBlank(wmsMaterial.getImage())) { omsLogger.info("添加图纸"); wmsMaterial = new WmsMaterial() .setId(null) From e2b5bb6778ff57da65f3ac9f7b2f2da964b53c3f Mon Sep 17 00:00:00 2001 From: zhangke Date: Fri, 26 Sep 2025 11:51:04 +0800 Subject: [PATCH 2/2] =?UTF-8?q?pda=20=E6=90=9C=E7=B4=A2=E4=B8=8A=E6=9E=B6?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E7=9A=84=E6=9D=A1=E4=BB=B6=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=87=87=E8=B4=AD=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/WmsPoReceiptItemMapper.xml | 7 ++++++- .../src/main/resources/mapper/WmsQcReceiveMapper.xml | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/nflg-wms-repository/src/main/resources/mapper/WmsPoReceiptItemMapper.xml b/nflg-wms-repository/src/main/resources/mapper/WmsPoReceiptItemMapper.xml index a3eda018..10c73ed8 100644 --- a/nflg-wms-repository/src/main/resources/mapper/WmsPoReceiptItemMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/WmsPoReceiptItemMapper.xml @@ -7,7 +7,12 @@ from wms_po_receipt where is_completed=false and source_type=0 - and ( order_no ilike #{orederNo} or in_num ilike #{orederNo} ) + and ( + order_no like concat('%', #{orederNo}, '%') + or in_num like concat('%', #{orederNo}, '%') + or exists (select 1 from wms_po_receipt_item where wms_po_receipt.id=wms_po_receipt_item.receive_id + and wms_po_receipt_item.po_num like concat('%', #{orederNo}, '%')) + ) order by id desc diff --git a/nflg-wms-repository/src/main/resources/mapper/WmsQcReceiveMapper.xml b/nflg-wms-repository/src/main/resources/mapper/WmsQcReceiveMapper.xml index 750ee6b8..f1d66e73 100644 --- a/nflg-wms-repository/src/main/resources/mapper/WmsQcReceiveMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/WmsQcReceiveMapper.xml @@ -11,7 +11,12 @@ from wms_qc_receive where is_completed !=2 and is_check = true and source_type=0 - and ( in_no ilike concat( '%',#{orderNo},'%') or order_no ilike concat( '%',#{orderNo},'%') ) + and ( in_no like concat( '%',#{orderNo},'%') + or order_no like concat( '%',#{orderNo},'%') + or exists (select 1 from wms_qc_receive_item where wms_qc_receive.id=wms_qc_receive_item.receive_id + and wms_qc_receive_item.po_num + ilike concat('%', #{orderNo}, '%')) + ) order by create_time desc