Browse Source

2026-04-07

pda生产领料模块增加【替代】功能
master
fengyuan_yang 2 months ago
parent
commit
94c8ae8a9f
  1. 8
      src/main/java/com/gaotao/modules/common/service/PartDetailsService.java
  2. 34
      src/main/java/com/gaotao/modules/common/service/impl/PartDetailsServiceImpl.java
  3. 31
      src/main/java/com/gaotao/modules/productionPicking/controller/ProductionPickingController.java
  4. 6
      src/main/java/com/gaotao/modules/productionPicking/service/ProductionPickingService.java
  5. 18
      src/main/java/com/gaotao/modules/productionPicking/service/impl/ProductionPickingServiceImpl.java

8
src/main/java/com/gaotao/modules/common/service/PartDetailsService.java

@ -21,5 +21,13 @@ public interface PartDetailsService {
*/
List<Map<String, Object>> getPartDetails(String site, String buNo, String notifyNo,
String notifyType, String warehouseId, String relatedOrderNo);
/**
* BOM 替代料清单存储过程 GetBomAlternativePartDetails
* @param partNo 被替代的物料编码
*/
List<Map<String, Object>> getBomAlternativePartDetails(String site, String buNo, String notifyNo,
String notifyType, String warehouseId,
String relatedOrderNo, String partNo);
}

34
src/main/java/com/gaotao/modules/common/service/impl/PartDetailsServiceImpl.java

@ -67,5 +67,39 @@ public class PartDetailsServiceImpl implements PartDetailsService {
throw new RuntimeException("获取物料清单失败: " + e.getMessage(), e);
}
}
/**
* 获取 BOM 替代料清单存储过程 GetBomAlternativePartDetails
*/
@Override
public List<Map<String, Object>> getBomAlternativePartDetails(String site, String buNo, String notifyNo,
String notifyType, String warehouseId,
String relatedOrderNo, String partNo) {
logger.info("调用存储过程GetBomAlternativePartDetails,site: {}, buNo: {}, notifyNo: {}, notifyType: {}, warehouseId: {}, relatedOrderNo: {}, partNo: {}",
site, buNo, notifyNo, notifyType, warehouseId, relatedOrderNo, partNo);
try {
List<Object> params = new ArrayList<>();
params.add(site != null ? site : "");
params.add(buNo != null ? buNo : "");
params.add(notifyNo != null ? notifyNo : "");
params.add(notifyType != null ? notifyType : "");
params.add(warehouseId != null ? warehouseId : "");
params.add(relatedOrderNo != null ? relatedOrderNo : "");
params.add(partNo != null ? partNo : "");
List<Map<String, Object>> resultList = procedureMapper.getProcedureData("GetBomAlternativePartDetails", params);
if (resultList == null) {
resultList = new ArrayList<>();
}
logger.info("获取替代料清单成功,notifyNo: {}, partNo: {}, 记录数: {}", notifyNo, partNo, resultList.size());
return resultList;
} catch (Exception e) {
logger.error("获取替代料清单失败,notifyNo: {}, partNo: {}, 错误: {}", notifyNo, partNo, e.getMessage(), e);
throw new RuntimeException("获取替代料清单失败: " + e.getMessage(), e);
}
}
}

31
src/main/java/com/gaotao/modules/productionPicking/controller/ProductionPickingController.java

@ -191,6 +191,37 @@ public class ProductionPickingController {
}
}
/**
* 获取 BOM 替代料清单存储过程 GetBomAlternativePartDetails
*/
@PostMapping("/outbound/bomAlternativePartDetails")
@ApiOperation("获取生产领料 BOM 替代料清单")
public R getBomAlternativePartDetails(@RequestBody Map<String, Object> params) {
try {
String site = (String) params.get("site");
String buNo = (String) params.get("buNo");
String outboundNo = (String) params.get("outboundNo");
String warehouseId = (String) params.get("warehouseId");
String relatedNo = (String) params.get("relatedNo");
String partNo = (String) params.get("partNo");
if (outboundNo == null || outboundNo.trim().isEmpty()) {
return R.error("出库单号不能为空");
}
if (partNo == null || partNo.trim().isEmpty()) {
return R.error("物料编码不能为空");
}
logger.info("获取替代料清单,出库单号: {}, partNo: {}", outboundNo, partNo);
List<Map<String, Object>> list = productionPickingService.getBomAlternativePartDetails(
site, buNo, outboundNo, warehouseId, relatedNo, partNo);
return R.ok().put("data", list);
} catch (Exception e) {
logger.error("获取替代料清单失败", e);
return R.error("获取替代料清单失败: " + e.getMessage());
}
}
/**
* 获取出库单物料明细列表
*/

6
src/main/java/com/gaotao/modules/productionPicking/service/ProductionPickingService.java

@ -52,6 +52,12 @@ public interface ProductionPickingService {
*/
List<Map<String, Object>> getMaterialList(String site, String buNo, String outboundNo, String warehouseId, String relatedNo);
/**
* 获取指定物料的 BOM 替代料清单存储过程 GetBomAlternativePartDetails
*/
List<Map<String, Object>> getBomAlternativePartDetails(String site, String buNo, String outboundNo,
String warehouseId, String relatedNo, String partNo);
/**
* 获取出库单物料明细列表
*/

18
src/main/java/com/gaotao/modules/productionPicking/service/impl/ProductionPickingServiceImpl.java

@ -232,6 +232,24 @@ public class ProductionPickingServiceImpl implements ProductionPickingService {
}
}
@Override
public List<Map<String, Object>> getBomAlternativePartDetails(String site, String buNo, String outboundNo,
String warehouseId, String relatedNo, String partNo) {
logger.info("获取替代料清单,站点: {}, 业务单元: {}, 出库单号: {}, 仓库: {}, 关联单号: {}, 物料: {}",
site, buNo, outboundNo, warehouseId, relatedNo, partNo);
try {
List<Map<String, Object>> list = partDetailsService.getBomAlternativePartDetails(
site, buNo, outboundNo, "生产领料-替代料", warehouseId, relatedNo, partNo);
if (list == null) {
list = new ArrayList<>();
}
return list;
} catch (Exception e) {
logger.error("获取替代料清单失败,出库单号: {}, partNo: {}, 错误: {}", outboundNo, partNo, e.getMessage(), e);
throw new RuntimeException("获取替代料清单失败: " + e.getMessage(), e);
}
}
/**
* 更新库存状态
*/

Loading…
Cancel
Save