From 83211bf4a04d26867a72979ea2d64548a4cda5fd Mon Sep 17 00:00:00 2001
From: tzy1042411602 <1042411602@qq.com>
Date: Mon, 6 Jan 2025 15:16:27 +0800
Subject: [PATCH] =?UTF-8?q?=E7=94=B5=E5=99=A8=E7=89=A9=E6=96=99=E7=AE=A1?=
=?UTF-8?q?=E7=90=86=20=E5=AE=89=E5=85=A8=E5=BA=93=E5=AD=98=E7=9A=84?=
=?UTF-8?q?=E6=A0=A1=E9=AA=8C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/main/resources/application.yml | 3 +
ruoyi-system/pom.xml | 7 +-
.../controller/BomDetailsController.java | 416 +++++-------
.../controller/EleMaterialsController.java | 107 ++++
.../controller/NewMaterialsController.java | 141 ++++
.../controller/ProcessRouteController.java | 61 +-
.../com/ruoyi/system/domain/EleMaterials.java | 60 ++
.../com/ruoyi/system/domain/NewMaterials.java | 72 +++
.../com/ruoyi/system/domain/ProcessRoute.java | 2 +-
.../com/ruoyi/system/domain/WlStockData.java | 36 +-
.../system/domain/bo/EleMaterialsBo.java | 77 +++
.../system/domain/bo/NewMaterialsBo.java | 95 +++
.../system/domain/bo/ProcessRouteBo.java | 2 +-
.../ruoyi/system/domain/bo/WlStockDataBo.java | 48 +-
.../domain/dto/InvReserveAnalyzeRptDTO.java | 24 +
.../com/ruoyi/system/domain/dto/ProMoDTO.java | 14 +
.../system/domain/dto/PurchaseOrderDTO.java | 14 +
.../system/domain/vo/EleMaterialsVo.java | 77 +++
.../ruoyi/system/domain/vo/MaterialBomVo.java | 3 -
.../system/domain/vo/NewMaterialsVo.java | 95 +++
.../system/domain/vo/ProcessRouteVo.java | 2 +-
.../ruoyi/system/domain/vo/SafetyStockVo.java | 6 +
.../ruoyi/system/domain/vo/WlStockDataVo.java | 48 +-
.../system/mapper/EleMaterialsMapper.java | 15 +
.../system/mapper/NewMaterialsMapper.java | 19 +
.../java/com/ruoyi/system/runner/JdUtil.java | 411 ++++++++++--
.../com/ruoyi/system/runner/PDFGenerator.java | 19 +-
.../system/service/IEleMaterialsService.java | 49 ++
.../system/service/INewMaterialsService.java | 54 ++
.../system/service/IProcessRouteService.java | 1 +
.../service/impl/EleMaterialsServiceImpl.java | 119 ++++
.../service/impl/NewMaterialsServiceImpl.java | 605 ++++++++++++++++++
.../service/impl/ProcessRouteServiceImpl.java | 104 ++-
.../service/impl/WlStockDataServiceImpl.java | 161 ++++-
.../mapper/system/EleMaterialsMapper.xml | 24 +
.../mapper/system/NewMaterialsMapper.xml | 25 +
.../mapper/system/WlStockDataMapper.xml | 8 +
37 files changed, 2656 insertions(+), 368 deletions(-)
create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/controller/EleMaterialsController.java
create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/controller/NewMaterialsController.java
create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/EleMaterials.java
create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/NewMaterials.java
create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/EleMaterialsBo.java
create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/NewMaterialsBo.java
create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/InvReserveAnalyzeRptDTO.java
create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/ProMoDTO.java
create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/PurchaseOrderDTO.java
create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/EleMaterialsVo.java
create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/NewMaterialsVo.java
create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/mapper/EleMaterialsMapper.java
create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/mapper/NewMaterialsMapper.java
create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/service/IEleMaterialsService.java
create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/service/INewMaterialsService.java
create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EleMaterialsServiceImpl.java
create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/NewMaterialsServiceImpl.java
create mode 100644 ruoyi-system/src/main/resources/mapper/system/EleMaterialsMapper.xml
create mode 100644 ruoyi-system/src/main/resources/mapper/system/NewMaterialsMapper.xml
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index c58cd4b..83a6086 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -64,6 +64,9 @@ user:
spring:
application:
name: ${ruoyi.name}
+ http:
+ connect-timeout: 10000
+ read-timeout: 20000
# 资源信息
messages:
# 国际化资源文件路径
diff --git a/ruoyi-system/pom.xml b/ruoyi-system/pom.xml
index ecf4340..28074c3 100644
--- a/ruoyi-system/pom.xml
+++ b/ruoyi-system/pom.xml
@@ -121,9 +121,10 @@
pdfbox
2.0.22
-
-
-
+
+ org.assertj
+ assertj-core
+
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controller/BomDetailsController.java b/ruoyi-system/src/main/java/com/ruoyi/system/controller/BomDetailsController.java
index 02d9e6c..32df99d 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/controller/BomDetailsController.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/controller/BomDetailsController.java
@@ -68,7 +68,6 @@ public class BomDetailsController extends BaseController {
private final IProcessRouteService iProcessRouteService;
private static final Logger log = LoggerFactory.getLogger(BomDetailsController.class);
-
/**
* 查询bom明细列表
*/
@@ -113,7 +112,6 @@ public class BomDetailsController extends BaseController {
}
}
-
private Long generateUniqueParentId(Long originalId) {
return originalId + 1000;
}
@@ -129,14 +127,13 @@ public class BomDetailsController extends BaseController {
child.setStats(bomDetailsVo.getStats());
child.setMaterial(bomDetailsVo.getMaterial());
child.setRemarks(bomDetailsVo.getRemarks());
- //child.setTotalWeight(bomDetailsVo.getTotalWeight());
+ // child.setTotalWeight(bomDetailsVo.getTotalWeight());
child.setUnitWeight(bomDetailsVo.getUnitWeight());
// 其他必要的字段赋值
return child;
}
-
/**
* 导出bom明细列表
*/
@@ -155,8 +152,7 @@ public class BomDetailsController extends BaseController {
*/
@SaCheckPermission("system:details:query")
@GetMapping("/{id}")
- public R getInfo(@NotNull(message = "主键不能为空")
- @PathVariable Long id) {
+ public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
return R.ok(iBomDetailsService.queryById(id));
}
@@ -190,12 +186,10 @@ public class BomDetailsController extends BaseController {
@SaCheckPermission("system:details:remove")
@Log(title = "bom明细", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
- public R remove(@NotEmpty(message = "主键不能为空")
- @PathVariable Long[] ids) {
+ public R remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) {
return toAjax(iBomDetailsService.deleteWithValidByIds(Arrays.asList(ids), true));
}
-
/**
* 导入BOM
* daorubaon
@@ -210,9 +204,9 @@ public class BomDetailsController extends BaseController {
List bomDetailsVos = ExcelUtil.importExcel(file.getInputStream(), BomDetailsVo.class);
List missingFieldsWarnings = new ArrayList<>();
List materialsToAdd = new ArrayList<>();
- //成品物料
+ // 成品物料
HashMap bomFinishedProduct = getBomFinishedProduct(file);
- //新增成品父级物流
+ // 新增成品父级物流
if (loadChengPinMaterialPreservation(bomFinishedProduct) == 1) {
log.info("新增成品父级物流成功");
}
@@ -223,17 +217,33 @@ public class BomDetailsController extends BaseController {
// 校验属性、材质、数量是否为空,并记录提示信息
if (bomDetails.getStats() == null || bomDetails.getMaterial() == null || bomDetails.getQuantity() == null) {
String warningMessage = String.format("记录 %s 缺少必要字段: 属性=%s, 材质=%s, 数量=%s",
- bomDetails.getPartNumber(), bomDetails.getStats(), bomDetails.getMaterial(), bomDetails.getQuantity());
+ bomDetails.getPartNumber(), bomDetails.getStats(), bomDetails.getMaterial(),
+ bomDetails.getQuantity());
missingFieldsWarnings.add(warningMessage);
}
// 验证物料是否存在
- if (bomDetails.getFNumber() != null && bomDetails.getFName() != null && bomDetails.getPartNumber() != null && bomDetails.getName() != null) {
+ if (bomDetails.getFNumber() != null && bomDetails.getFName() != null && bomDetails.getPartNumber() != null
+ && bomDetails.getName() != null) {
int verification = isMaterialVerification(bomDetails.getPartNumber(), bomDetails.getName());
if (verification == 1) {
bomDetails.setUnitWeight("是");
+ } else if (verification == 3) {
+ if (bomDetails.getStats() == null || bomDetails.getStats().equals("外购")
+ || bomDetails.getFName().startsWith("009") || bomDetails.getFName().startsWith("AA")
+ || bomDetails.getFName().startsWith("AB") || bomDetails.getFName().startsWith("AC")
+ || bomDetails.getFName().startsWith("015")) {
+ materialsToAdd.add(bomDetails);
+ } else if (bomDetails.getStats().equals("自制")) {
+ materialsToAdd.add(bomDetails);
+ } else if (bomDetails.getStats().equals("委外")) {
+ materialsToAdd.add(bomDetails);
+ }
+ bomDetails.setUnitWeight("编码名称不符");
} else {
- if (bomDetails.getStats() == null || bomDetails.getStats().equals("外购") || bomDetails.getFName().startsWith("009") || bomDetails.getFName().startsWith("AA")
- || bomDetails.getFName().startsWith("AB") || bomDetails.getFName().startsWith("AC") || bomDetails.getFName().startsWith("015")) {
+ if (bomDetails.getStats() == null || bomDetails.getStats().equals("外购")
+ || bomDetails.getFName().startsWith("009") || bomDetails.getFName().startsWith("AA")
+ || bomDetails.getFName().startsWith("AB") || bomDetails.getFName().startsWith("AC")
+ || bomDetails.getFName().startsWith("015")) {
materialsToAdd.add(bomDetails);
} else if (bomDetails.getStats().equals("自制")) {
materialsToAdd.add(bomDetails);
@@ -256,7 +266,7 @@ public class BomDetailsController extends BaseController {
ArrayList bomDetails = new ArrayList<>();
// 统一新增不存在的物料
for (BomDetails material : materialsToAdd) {
- //替换属性编码(金蝶)
+ // 替换属性编码(金蝶)
if (material == null) {
continue; // 如果 material 为空,则跳过当前循环
}
@@ -264,7 +274,7 @@ public class BomDetailsController extends BaseController {
String state = determineState(material);
log.info("开始新增不存在的物料==> 物料图号: " + material.getPartNumber() + " 物料名称: " + material.getName());
System.out.println("state:=======================>" + state);
- //判断是否是电器物料
+ // 判断是否是电器物料
int result;
if (material.getTotalWeight().contains("DQ")) {
log.info("开始新增不存在的电气物料==> 物料图号: " + material.getPartNumber() + " 物料名称: " + material.getName());
@@ -317,7 +327,8 @@ public class BomDetailsController extends BaseController {
*/
public static String determineState(BomDetails stats) {
if (stats == null || stats.getStats().equals("外购") || stats.getFName().startsWith("009") ||
- stats.getFName().startsWith("AA") || stats.getFName().startsWith("AB") || stats.getFName().startsWith("AC")) {
+ stats.getFName().startsWith("AA") || stats.getFName().startsWith("AB")
+ || stats.getFName().startsWith("AC")) {
return "1";
} else if (stats.getStats().equals("自制")) {
return "2";
@@ -327,8 +338,7 @@ public class BomDetailsController extends BaseController {
return "1";
}
-
- /*触发金蝶物料清单按钮*/
+ /* 触发金蝶物料清单按钮 */
@Log(title = "金蝶物料清单更新")
@SaCheckPermission("system:details:updateMaterial")
@PostMapping("/updateMaterial")
@@ -343,7 +353,7 @@ public class BomDetailsController extends BaseController {
List bomDetails = iBomDetailsService.selectByFNumber(number);
System.out.println(number);
if (bomDetails != null && !bomDetails.isEmpty()) {
- //物料清单保存方法
+ // 物料清单保存方法
int i1 = loadBillOfMaterialsPreservation(bomDetails);
if (i1 == 1) {
return R.ok("bom上传成功");
@@ -356,17 +366,16 @@ public class BomDetailsController extends BaseController {
return R.ok("bom上传成功", bomDetailsList);
}
-
- /*触发非标项目金蝶物料清单按钮*/
+ /* 触发非标项目金蝶物料清单按钮 */
@Log(title = "非标金蝶物料清单更新")
- @SaCheckPermission("system:details:updateMaterial")
+ @SaCheckPermission("system:details:updateFBMaterial")
@PostMapping("/updateFBMaterial")
public R updateFBMaterial(@RequestBody List