移除SAP的zwm3A01和zwm3A02支持

This commit is contained in:
曹鹏飞 2026-03-02 16:22:14 +08:00
parent 54f73be1b2
commit 31b7c35127
12 changed files with 310 additions and 306 deletions

View File

@ -565,7 +565,7 @@ public class InProduceOrderController extends BaseController {
Set<String> dbMapBins = storageService.getBinNos(it.getMaterialNo(), it.getFactoryNo(), it.getWarehouseNo()); Set<String> dbMapBins = storageService.getBinNos(it.getMaterialNo(), it.getFactoryNo(), it.getWarehouseNo());
if (!binNos.equals(dbMapBins)) { if (!binNos.equals(dbMapBins)) {
//调用SAP接口保存库位信息 //调用SAP接口保存库位信息
sapService.zwm3A02(it.getFactoryNo(), it.getMaterialNo(), it.getWarehouseNo(), binNos); // sapService.zwm3A02(it.getFactoryNo(), it.getMaterialNo(), it.getWarehouseNo(), binNos);
//保存库位信息到数据库 //保存库位信息到数据库
DictionaryItem factory = dictionaryService.getItemByCode(Constant.DICTIONARY_FACTORY, it.getFactoryNo()); DictionaryItem factory = dictionaryService.getItemByCode(Constant.DICTIONARY_FACTORY, it.getFactoryNo());
VUtil.trueThrowBusinessError(Objects.isNull(factory)).throwMessage("工厂(" + it.getFactoryNo() + ")不存在"); VUtil.trueThrowBusinessError(Objects.isNull(factory)).throwMessage("工厂(" + it.getFactoryNo() + ")不存在");

View File

@ -9,12 +9,14 @@ import com.nflg.wms.common.pojo.qo.WarehouseSearchQO;
import com.nflg.wms.common.pojo.qo.WarehouseUpdateQO; import com.nflg.wms.common.pojo.qo.WarehouseUpdateQO;
import com.nflg.wms.common.pojo.vo.WarehouseSimpleVO; import com.nflg.wms.common.pojo.vo.WarehouseSimpleVO;
import com.nflg.wms.common.pojo.vo.WarehouseVO; import com.nflg.wms.common.pojo.vo.WarehouseVO;
import com.nflg.wms.common.util.VUtil;
import com.nflg.wms.repository.entity.DictionaryItem; import com.nflg.wms.repository.entity.DictionaryItem;
import com.nflg.wms.starter.BaseController; import com.nflg.wms.starter.BaseController;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import org.apache.http.annotation.Obsolete;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -132,12 +134,13 @@ public class WarehouseController extends BaseController {
return ApiResult.success(warehouseControllerService.getEnableList(factoryNo)); return ApiResult.success(warehouseControllerService.getEnableList(factoryNo));
} }
/** // /**
* 手动拉取 // * 手动拉取
* @param id 仓库id // * @param id 仓库id
*/ // */
@GetMapping("syncFromSAP") // @Obsolete
public ApiResult<String> syncFromSAP(@Valid @RequestParam @NotNull Long id) { // @GetMapping("syncFromSAP")
return ApiResult.success(warehouseControllerService.syncFromSAP(id)); // public ApiResult<String> syncFromSAP(@Valid @RequestParam @NotNull Long id) {
} // return ApiResult.success(warehouseControllerService.syncFromSAP(id));
// }
} }

View File

@ -22,16 +22,17 @@ public class BinService {
public String getBinNos(String materialNo, String factory, String warehouseNo) { public String getBinNos(String materialNo, String factory, String warehouseNo) {
Set<String> bins = storageService.getBinNos(materialNo, factory, warehouseNo); Set<String> bins = storageService.getBinNos(materialNo, factory, warehouseNo);
if (CollectionUtil.isNotEmpty(bins)){ // if (CollectionUtil.isNotEmpty(bins)){
// return String.join("/",bins);
// }else {
// List<SAPSyncFromDTO> dtos = sapService.zwm3A01(factory, List.of(warehouseNo), List.of(materialNo), null, null);
// if (CollectionUtil.isEmpty(dtos)){
// log.error("{},{},{}未从SAP的ZWM3A01接口查询到数据", factory, warehouseNo, materialNo);
// return null;
// }else {
// return dtos.get(0).getBinNos();
// }
// }
return String.join("/",bins); return String.join("/",bins);
}else {
List<SAPSyncFromDTO> dtos = sapService.zwm3A01(factory, List.of(warehouseNo), List.of(materialNo), null, null);
if (CollectionUtil.isEmpty(dtos)){
log.error("{},{},{}未从SAP的ZWM3A01接口查询到数据", factory, warehouseNo, materialNo);
return null;
}else {
return dtos.get(0).getBinNos();
}
}
} }
} }

View File

@ -305,13 +305,13 @@ public class NormalPGIControllerService {
inventoryService.in(inventories); inventoryService.in(inventories);
} }
if (CollectionUtil.isNotEmpty(storageLocationDTOS)) { // if (CollectionUtil.isNotEmpty(storageLocationDTOS)) {
storageLocationDTOS.forEach(storageLocationDTO -> { // storageLocationDTOS.forEach(storageLocationDTO -> {
sapService.zwm3A02(storageLocationDTO.getFactory(), // sapService.zwm3A02(storageLocationDTO.getFactory(),
storageLocationDTO.getMaterialNo(), // storageLocationDTO.getMaterialNo(),
storageLocationDTO.getWarehouseNo(), storageLocationDTO.getBinNos()); // storageLocationDTO.getWarehouseNo(), storageLocationDTO.getBinNos());
}); // });
} // }
//推送到SAP //推送到SAP
if (CollectionUtil.isNotEmpty(zwm3A17DTOS)) { if (CollectionUtil.isNotEmpty(zwm3A17DTOS)) {
@ -437,13 +437,13 @@ public class NormalPGIControllerService {
inventoryService.in(inventories); inventoryService.in(inventories);
} }
if (CollectionUtil.isNotEmpty(storageLocationDTOS)) { // if (CollectionUtil.isNotEmpty(storageLocationDTOS)) {
storageLocationDTOS.forEach(storageLocationDTO -> { // storageLocationDTOS.forEach(storageLocationDTO -> {
sapService.zwm3A02(storageLocationDTO.getFactory(), // sapService.zwm3A02(storageLocationDTO.getFactory(),
storageLocationDTO.getMaterialNo(), // storageLocationDTO.getMaterialNo(),
storageLocationDTO.getWarehouseNo(), storageLocationDTO.getBinNos()); // storageLocationDTO.getWarehouseNo(), storageLocationDTO.getBinNos());
}); // });
} // }
//推送到SAP //推送到SAP
if (CollectionUtil.isNotEmpty(zwm3A17DTOS)) { if (CollectionUtil.isNotEmpty(zwm3A17DTOS)) {

View File

@ -140,13 +140,13 @@ public class NormalQMControllerService {
} }
// 修改储位信息 // 修改储位信息
if (CollectionUtil.isNotEmpty(qcReceiveDTO.getStorageLocationDTOS())) { // if (CollectionUtil.isNotEmpty(qcReceiveDTO.getStorageLocationDTOS())) {
qcReceiveDTO.getStorageLocationDTOS().forEach(storageLocationDTO -> { // qcReceiveDTO.getStorageLocationDTOS().forEach(storageLocationDTO -> {
sapService.zwm3A02(storageLocationDTO.getFactory(), // sapService.zwm3A02(storageLocationDTO.getFactory(),
storageLocationDTO.getMaterialNo(), // storageLocationDTO.getMaterialNo(),
storageLocationDTO.getWarehouseNo(), storageLocationDTO.getBinNos()); // storageLocationDTO.getWarehouseNo(), storageLocationDTO.getBinNos());
}); // });
} // }
} }
} }

View File

@ -45,17 +45,17 @@ public class SAPCommonService {
syncParams.setKzkri(materialInfoInOrder.getKzkri()); syncParams.setKzkri(materialInfoInOrder.getKzkri());
//获取仓库信息 //获取仓库信息
List<String> warehouseNos = new ArrayList<>(); // List<String> warehouseNos = new ArrayList<>();
warehouseNos.add(materialInfoInOrder.getWarehouseNo()); // warehouseNos.add(materialInfoInOrder.getWarehouseNo());
List<String> materialNos = new ArrayList<>(); // List<String> materialNos = new ArrayList<>();
materialNos.add(materialInfoInOrder.getMatnr()); // materialNos.add(materialInfoInOrder.getMatnr());
List<SAPSyncFromDTO> list = sapService.zwm3A01(materialInfoInOrder.getWerks(), warehouseNos, materialNos, null, null); // List<SAPSyncFromDTO> list = sapService.zwm3A01(materialInfoInOrder.getWerks(), warehouseNos, materialNos, null, null);
if (!CollectionUtil.isEmpty(list)) { // if (!CollectionUtil.isEmpty(list)) {
//同步仓库信息 // //同步仓库信息
SAPSyncFromDTO dbWarehouse = list.get(0); // SAPSyncFromDTO dbWarehouse = list.get(0);
syncParams.setWarehouseNo(dbWarehouse.getWarehouseNo()); // syncParams.setWarehouseNo(dbWarehouse.getWarehouseNo());
syncParams.setBinNos(dbWarehouse.getBinNos()); // syncParams.setBinNos(dbWarehouse.getBinNos());
} // }
result.add(syncParams); result.add(syncParams);
} }
return result; return result;
@ -94,17 +94,17 @@ public class SAPCommonService {
syncParams.setKzkri(materialInfoInOrder.getKzkri()); syncParams.setKzkri(materialInfoInOrder.getKzkri());
//获取仓库信息 //获取仓库信息
List<String> warehouseNos = new ArrayList<>(); // List<String> warehouseNos = new ArrayList<>();
warehouseNos.add(materialInfoInOrder.getWarehouseNo()); // warehouseNos.add(materialInfoInOrder.getWarehouseNo());
List<String> materialNos = new ArrayList<>(); // List<String> materialNos = new ArrayList<>();
materialNos.add(materialInfoInOrder.getMatnr()); // materialNos.add(materialInfoInOrder.getMatnr());
List<SAPSyncFromDTO> list = sapService.zwm3A01(materialInfoInOrder.getWerks(), warehouseNos, materialNos, null, null); // List<SAPSyncFromDTO> list = sapService.zwm3A01(materialInfoInOrder.getWerks(), warehouseNos, materialNos, null, null);
if (!CollectionUtil.isEmpty(list)) { // if (!CollectionUtil.isEmpty(list)) {
//同步仓库信息 // //同步仓库信息
SAPSyncFromDTO dbWarehouse = list.get(0); // SAPSyncFromDTO dbWarehouse = list.get(0);
syncParams.setWarehouseNo(dbWarehouse.getWarehouseNo()); // syncParams.setWarehouseNo(dbWarehouse.getWarehouseNo());
syncParams.setBinNos(dbWarehouse.getBinNos()); // syncParams.setBinNos(dbWarehouse.getBinNos());
} // }
return syncParams; return syncParams;
} }

View File

@ -311,78 +311,78 @@ public class SapService {
, Pair.of(structure.getString("MAT_DOC_103"), structure.getString("DOC_YEAR_103"))); , Pair.of(structure.getString("MAT_DOC_103"), structure.getString("DOC_YEAR_103")));
} }
/** // /**
* 保存库位 // * 保存库位
* @param factory 工厂编号 // * @param factory 工厂编号
* @param materialNo 物料编号 // * @param materialNo 物料编号
* @param warehouseNo 仓库编号 // * @param warehouseNo 仓库编号
* @param binNos 储位编号列表 // * @param binNos 储位编号列表
*/ // */
public void zwm3A02(String factory, String materialNo, String warehouseNo, Collection<String> binNos) { // public void zwm3A02(String factory, String materialNo, String warehouseNo, Collection<String> binNos) {
Map<String, List<Map<String, Object>>> tables = new HashMap<>(); // Map<String, List<Map<String, Object>>> tables = new HashMap<>();
Map<String, Object> item = new HashMap<>(); // Map<String, Object> item = new HashMap<>();
item.put("WERKS", factory); // item.put("WERKS", factory);
item.put("MATNR", materialNo); // item.put("MATNR", materialNo);
item.put("LGORT", warehouseNo); // item.put("LGORT", warehouseNo);
item.put("LGPBE", StrUtil.join("/", binNos)); // item.put("LGPBE", StrUtil.join("/", binNos));
tables.put("T_OUT", List.of(item)); // tables.put("T_OUT", List.of(item));
//
// JCoFunction function = exec("ZWM3A02", null, tables);
//
// JCoTable table = function.getTableParameterList().getTable("T_OUT");
// List<Map<String, Object>> tOut = JCoUtil.toMapList(table);
// VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(tOut)).throwMessage("SAP未返回结果");
// VUtil.trueThrowBusinessError(!StrUtil.equals(tOut.get(0).get("E_TYPE").toString(), "S"))
// .throwMessage("SAP" + tOut.get(0).get("E_MSG"));
// }
JCoFunction function = exec("ZWM3A02", null, tables); // /**
// * 获取库存信息
// * @param factory 工厂编号
// * @param warehouseNo 仓库编号
// * @param materialNo 物料编号
// */
// public SAPSyncFromDTO zwm3A01(String factory, String warehouseNo, String materialNo) {
// return zwm3A01(factory, Collections.singletonList(warehouseNo), Collections.singletonList(materialNo), null, null)
// .stream().findFirst().orElse(null);
// }
JCoTable table = function.getTableParameterList().getTable("T_OUT"); // /**
List<Map<String, Object>> tOut = JCoUtil.toMapList(table); // * 获取库存信息
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(tOut)).throwMessage("SAP未返回结果"); // * @param factory 工厂编号
VUtil.trueThrowBusinessError(!StrUtil.equals(tOut.get(0).get("E_TYPE").toString(), "S")) // * @param warehouseNos 仓库编号列表
.throwMessage("SAP" + tOut.get(0).get("E_MSG")); // * @param beginTime 开始时间格式yyyyMMdd
} // * @param endTime 结束时间格式yyyyMMdd
// */
/** // public List<SAPSyncFromDTO> zwm3A01(String factory, List<String> warehouseNos, List<String> materialNos, String beginTime, String endTime) {
* 获取库存信息 // Map<String, Object> parameters = new HashMap<>();
* @param factory 工厂编号 // parameters.put("I_WERKS", factory);
* @param warehouseNo 仓库编号 // parameters.put("I_TYPE", Objects.nonNull(beginTime) || Objects.nonNull(endTime) ? "I" : "A");
* @param materialNo 物料编号 // if (Objects.nonNull(beginTime)) {
*/ // parameters.put("S_DATE", beginTime);
public SAPSyncFromDTO zwm3A01(String factory, String warehouseNo, String materialNo) { // }
return zwm3A01(factory, Collections.singletonList(warehouseNo), Collections.singletonList(materialNo), null, null) // if (Objects.nonNull(endTime)) {
.stream().findFirst().orElse(null); // parameters.put("E_DATE", endTime);
} // }
//
/** // Map<String, List<Map<String, Object>>> tables = new HashMap<>();
* 获取库存信息 // List<Map<String, Object>> warehouses = new ArrayList<>();
* @param factory 工厂编号 // warehouseNos.forEach(warehouseNo -> {
* @param warehouseNos 仓库编号列表 // warehouses.add(Map.of("LGORT", warehouseNo));
* @param beginTime 开始时间格式yyyyMMdd // });
* @param endTime 结束时间格式yyyyMMdd // tables.put("IT_LGORT", warehouses);
*/ // List<Map<String, Object>> materials = new ArrayList<>();
public List<SAPSyncFromDTO> zwm3A01(String factory, List<String> warehouseNos, List<String> materialNos, String beginTime, String endTime) { // materialNos.forEach(materialNo -> {
Map<String, Object> parameters = new HashMap<>(); // materials.add(Map.of("MATNR", materialNo));
parameters.put("I_WERKS", factory); // });
parameters.put("I_TYPE", Objects.nonNull(beginTime) || Objects.nonNull(endTime) ? "I" : "A"); // tables.put("IT_MATNR", materials);
if (Objects.nonNull(beginTime)) { //
parameters.put("S_DATE", beginTime); // JCoTable tOut = execReturnTable("ZWM3A01", parameters, tables);
} //
if (Objects.nonNull(endTime)) { // List<SAPSyncFromDTO> result = JCoUtil.toBeanList(tOut, SAPSyncFromDTO.class);
parameters.put("E_DATE", endTime); // log.debug("数据:{}", JSONUtil.toJsonStr(result));
} // return result;
// }
Map<String, List<Map<String, Object>>> tables = new HashMap<>();
List<Map<String, Object>> warehouses = new ArrayList<>();
warehouseNos.forEach(warehouseNo -> {
warehouses.add(Map.of("LGORT", warehouseNo));
});
tables.put("IT_LGORT", warehouses);
List<Map<String, Object>> materials = new ArrayList<>();
materialNos.forEach(materialNo -> {
materials.add(Map.of("MATNR", materialNo));
});
tables.put("IT_MATNR", materials);
JCoTable tOut = execReturnTable("ZWM3A01", parameters, tables);
List<SAPSyncFromDTO> result = JCoUtil.toBeanList(tOut, SAPSyncFromDTO.class);
log.debug("数据:{}", JSONUtil.toJsonStr(result));
return result;
}
/** /**
* 获取订单信息 * 获取订单信息
@ -1392,48 +1392,48 @@ public class SapService {
return Pair.of(structure.getString("MAT_DOC"), structure.getString("DOC_YEAR")); return Pair.of(structure.getString("MAT_DOC"), structure.getString("DOC_YEAR"));
} }
/** // /**
* 获取库存信息 // * 获取库存信息
* @param factory 工厂编号 // * @param factory 工厂编号
* @param warehouseNos 仓库编号列表 // * @param warehouseNos 仓库编号列表
* @param beginTime 开始时间格式yyyyMMdd // * @param beginTime 开始时间格式yyyyMMdd
* @param endTime 结束时间格式yyyyMMdd // * @param endTime 结束时间格式yyyyMMdd
*/ // */
public List<SAPSyncFromDTO> getStorage(String factory, List<String> warehouseNos, String beginTime, String endTime) { // public List<SAPSyncFromDTO> getStorage(String factory, List<String> warehouseNos, String beginTime, String endTime) {
Map<String, Object> parameters = new HashMap<>(); // Map<String, Object> parameters = new HashMap<>();
parameters.put("I_WERKS", factory); // parameters.put("I_WERKS", factory);
parameters.put("I_TYPE", Objects.nonNull(beginTime) || Objects.nonNull(endTime) ? "I" : "A"); // parameters.put("I_TYPE", Objects.nonNull(beginTime) || Objects.nonNull(endTime) ? "I" : "A");
if (Objects.nonNull(beginTime)) { // if (Objects.nonNull(beginTime)) {
parameters.put("S_DATE", beginTime); // parameters.put("S_DATE", beginTime);
} // }
if (Objects.nonNull(endTime)) { // if (Objects.nonNull(endTime)) {
parameters.put("E_DATE", endTime); // parameters.put("E_DATE", endTime);
} // }
//
Map<String, List<Map<String, Object>>> tables = new HashMap<>(); // Map<String, List<Map<String, Object>>> tables = new HashMap<>();
List<Map<String, Object>> warehouses = new ArrayList<>(); // List<Map<String, Object>> warehouses = new ArrayList<>();
warehouseNos.forEach(warehouseNo -> { // warehouseNos.forEach(warehouseNo -> {
warehouses.add(Map.of("LGORT", warehouseNo)); // warehouses.add(Map.of("LGORT", warehouseNo));
}); // });
tables.put("IT_LGORT", warehouses); // tables.put("IT_LGORT", warehouses);
//
JCoTable tOut = execReturnTable("ZWM3A01", parameters, tables); // JCoTable tOut = execReturnTable("ZWM3A01", parameters, tables);
//
List<SAPSyncFromDTO> result = new ArrayList<>(); // List<SAPSyncFromDTO> result = new ArrayList<>();
for (int i = 0; i < tOut.getNumRows(); i++) { // for (int i = 0; i < tOut.getNumRows(); i++) {
tOut.setRow(i); // tOut.setRow(i);
result.add(new SAPSyncFromDTO() // result.add(new SAPSyncFromDTO()
.setFactoryNo(tOut.getString("WERKS")) // .setFactoryNo(tOut.getString("WERKS"))
.setMaterialNo(tOut.getString("MATNR")) // .setMaterialNo(tOut.getString("MATNR"))
.setMaterialDesc(tOut.getString("MAKTX")) // .setMaterialDesc(tOut.getString("MAKTX"))
.setWarehouseNo(tOut.getString("LGORT")) // .setWarehouseNo(tOut.getString("LGORT"))
.setWarehouseName(tOut.getString("LGOBE")) // .setWarehouseName(tOut.getString("LGOBE"))
.setBinNos(tOut.getString("LGPBE"))) // .setBinNos(tOut.getString("LGPBE")))
; // ;
} // }
log.debug("数据:{}", JSONUtil.toJsonStr(result)); // log.debug("数据:{}", JSONUtil.toJsonStr(result));
return result; // return result;
} // }
private JCoTable execReturnTable(String functionName, Map<String, Object> parameters) { private JCoTable execReturnTable(String functionName, Map<String, Object> parameters) {
return execReturnTable(functionName, parameters, null, "T_OUT"); return execReturnTable(functionName, parameters, null, "T_OUT");

View File

@ -556,7 +556,7 @@ public class StructuralPackageControllerService {
.toList() .toList()
); );
//调用SAP接口保存库位信息 //调用SAP接口保存库位信息
sapService.zwm3A02(qo.getFactory(), qo.getMaterialNo(), qo.getReceivedWarehouse(), qo.getBinNos()); // sapService.zwm3A02(qo.getFactory(), qo.getMaterialNo(), qo.getReceivedWarehouse(), qo.getBinNos());
} }
} }
} }

View File

@ -222,131 +222,131 @@ public class WarehouseControllerService {
return warehouseService.getEnableList(factoryNo); return warehouseService.getEnableList(factoryNo);
} }
public String syncFromSAP(@Valid @NotNull Long id) { // public String syncFromSAP(@Valid @NotNull Long id) {
WmsWarehouse warehouse = warehouseService.getById(id); // WmsWarehouse warehouse = warehouseService.getById(id);
VUtil.trueThrowBusinessError(Objects.isNull(warehouse)).throwMessage("仓库不存在"); // VUtil.trueThrowBusinessError(Objects.isNull(warehouse)).throwMessage("仓库不存在");
VUtil.trueThrowBusinessError(!warehouse.getEnable()).throwMessage("仓库未启用"); // VUtil.trueThrowBusinessError(!warehouse.getEnable()).throwMessage("仓库未启用");
DictionaryItem factory = dictionaryItemService.getById(warehouse.getFactoryId()); // DictionaryItem factory = dictionaryItemService.getById(warehouse.getFactoryId());
VUtil.trueThrowBusinessError(Objects.isNull(factory)).throwMessage("工厂不存在"); // VUtil.trueThrowBusinessError(Objects.isNull(factory)).throwMessage("工厂不存在");
String start = DateTimeUtil.format(LocalDate.now(), "yyyyMMdd"); // String start = DateTimeUtil.format(LocalDate.now(), "yyyyMMdd");
String end = DateTimeUtil.format(LocalDate.now().plusDays(1), "yyyyMMdd"); // String end = DateTimeUtil.format(LocalDate.now().plusDays(1), "yyyyMMdd");
return save(factory, List.of(warehouse.getNo()), start, end); // return save(factory, List.of(warehouse.getNo()), start, end);
} // }
private String save(DictionaryItem fy, List<String> warehouseNos, String start, String end) { // private String save(DictionaryItem fy, List<String> warehouseNos, String start, String end) {
log.info("处理工厂:{},开始日期:{},结束日期:{}", fy.getValue(), start, end); // log.info("处理工厂:{},开始日期:{},结束日期:{}", fy.getValue(), start, end);
List<SAPSyncFromDTO> list = sapService.getStorage(fy.getValue(), warehouseNos, start, end); // List<SAPSyncFromDTO> list = sapService.getStorage(fy.getValue(), warehouseNos, start, end);
if (CollectionUtil.isEmpty(list)) { // if (CollectionUtil.isEmpty(list)) {
log.info("没有获取到数据"); // log.info("没有获取到数据");
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(list)).throwMessage("没有获取到数据"); // VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(list)).throwMessage("没有获取到数据");
} else { // } else {
log.info("获取到{}条数据", list.size()); // log.info("获取到{}条数据", list.size());
//同步仓库信息 // //同步仓库信息
warehouseNos = list.stream().map(SAPSyncFromDTO::getWarehouseNo).distinct().toList(); // warehouseNos = list.stream().map(SAPSyncFromDTO::getWarehouseNo).distinct().toList();
List<WmsWarehouse> dbWarehouses = warehouseService.lambdaQuery().eq(WmsWarehouse::getFactoryId, fy.getId()).in(WmsWarehouse::getNo, warehouseNos).list(); // List<WmsWarehouse> dbWarehouses = warehouseService.lambdaQuery().eq(WmsWarehouse::getFactoryId, fy.getId()).in(WmsWarehouse::getNo, warehouseNos).list();
warehouseNos.forEach(wn -> { // warehouseNos.forEach(wn -> {
String name = list.stream().filter(dto -> StrUtil.equals(dto.getWarehouseNo(), wn)).findFirst().get().getWarehouseName(); // String name = list.stream().filter(dto -> StrUtil.equals(dto.getWarehouseNo(), wn)).findFirst().get().getWarehouseName();
WmsWarehouse dbWarehouse = dbWarehouses.stream().filter(w -> StrUtil.equals(w.getNo(), wn)).findFirst().orElse(null); // WmsWarehouse dbWarehouse = dbWarehouses.stream().filter(w -> StrUtil.equals(w.getNo(), wn)).findFirst().orElse(null);
if (Objects.isNull(dbWarehouse)) { // if (Objects.isNull(dbWarehouse)) {
dbWarehouse = new WmsWarehouse() // dbWarehouse = new WmsWarehouse()
.setNo(wn) // .setNo(wn)
.setName(name) // .setName(name)
.setFactoryId(fy.getId()) // .setFactoryId(fy.getId())
.setRemark("从SAP同步") // .setRemark("从SAP同步")
.setCreateBy("SAP同步") // .setCreateBy("SAP同步")
.setCreateTime(LocalDateTime.now()); // .setCreateTime(LocalDateTime.now());
warehouseService.save(dbWarehouse); // warehouseService.save(dbWarehouse);
dbWarehouses.add(dbWarehouse); // dbWarehouses.add(dbWarehouse);
} else if (!StrUtil.equals(dbWarehouse.getName(), name)) { // } else if (!StrUtil.equals(dbWarehouse.getName(), name)) {
warehouseService.lambdaUpdate() // warehouseService.lambdaUpdate()
.set(WmsWarehouse::getId, dbWarehouse.getId()) // .set(WmsWarehouse::getId, dbWarehouse.getId())
.set(WmsWarehouse::getName, name) // .set(WmsWarehouse::getName, name)
.set(WmsWarehouse::getUpdateBy, "SAP同步") // .set(WmsWarehouse::getUpdateBy, "SAP同步")
.set(WmsWarehouse::getUpdateTime, LocalDateTime.now()); // .set(WmsWarehouse::getUpdateTime, LocalDateTime.now());
} // }
}); // });
List<WmsBin> dbBins = new ArrayList<>(); // List<WmsBin> dbBins = new ArrayList<>();
List<WmsBin> binsForAdd = new ArrayList<>(); // List<WmsBin> binsForAdd = new ArrayList<>();
List<WmsStorage> storagesForAdd = new ArrayList<>(); // List<WmsStorage> storagesForAdd = new ArrayList<>();
List<WmsStorageBin> storageBins = new ArrayList<>(); // List<WmsStorageBin> storageBins = new ArrayList<>();
List<WmsStorage> storagesForUpdate = new ArrayList<>(); // List<WmsStorage> storagesForUpdate = new ArrayList<>();
List<String> materialNos = list.stream().map(SAPSyncFromDTO::getMaterialNo).toList(); // List<String> materialNos = list.stream().map(SAPSyncFromDTO::getMaterialNo).toList();
List<VStorage> lv = vStorageService.lambdaQuery().eq(VStorage::getFactoryId, fy.getId()).in(VStorage::getMaterialNo, materialNos).list(); // List<VStorage> lv = vStorageService.lambdaQuery().eq(VStorage::getFactoryId, fy.getId()).in(VStorage::getMaterialNo, materialNos).list();
if (CollectionUtil.isNotEmpty(lv)) { // if (CollectionUtil.isNotEmpty(lv)) {
storageBinService.remove(new LambdaQueryWrapper<WmsStorageBin>().in(WmsStorageBin::getStorageId, lv.stream().map(VStorage::getId).toList())); // storageBinService.remove(new LambdaQueryWrapper<WmsStorageBin>().in(WmsStorageBin::getStorageId, lv.stream().map(VStorage::getId).toList()));
} // }
list.forEach(dto -> { // list.forEach(dto -> {
log.info("处理物料:{}", dto.getMaterialNo()); // log.info("处理物料:{}", dto.getMaterialNo());
WmsWarehouse dbWarehouse = dbWarehouses.stream().filter(w -> StrUtil.equals(w.getNo(), dto.getWarehouseNo())).findFirst().get(); // WmsWarehouse dbWarehouse = dbWarehouses.stream().filter(w -> StrUtil.equals(w.getNo(), dto.getWarehouseNo())).findFirst().get();
VStorage dbStorage = lv.stream().filter(l -> StrUtil.equals(l.getMaterialNo(), dto.getMaterialNo()) // VStorage dbStorage = lv.stream().filter(l -> StrUtil.equals(l.getMaterialNo(), dto.getMaterialNo())
&& StrUtil.equals(l.getWarehouseNo(), dto.getWarehouseNo())).findFirst().orElse(null); // && StrUtil.equals(l.getWarehouseNo(), dto.getWarehouseNo())).findFirst().orElse(null);
List<String> sapBinNos = StrUtil.split(dto.getBinNos(), "/"); // List<String> sapBinNos = StrUtil.split(dto.getBinNos(), "/");
if (CollectionUtil.isNotEmpty(sapBinNos)) { // if (CollectionUtil.isNotEmpty(sapBinNos)) {
for (String sapBinNo : sapBinNos) { // for (String sapBinNo : sapBinNos) {
WmsBin dbBin = dbBins.stream().filter(b -> StrUtil.equals(b.getNo(), sapBinNo)).findFirst().orElse(null); // WmsBin dbBin = dbBins.stream().filter(b -> StrUtil.equals(b.getNo(), sapBinNo)).findFirst().orElse(null);
if (Objects.isNull(dbBin)) { // if (Objects.isNull(dbBin)) {
dbBin = wmsBinService.lambdaQuery().eq(WmsBin::getNo, sapBinNo).one(); // dbBin = wmsBinService.lambdaQuery().eq(WmsBin::getNo, sapBinNo).one();
if (Objects.isNull(dbBin)) { // if (Objects.isNull(dbBin)) {
dbBin = new WmsBin() // dbBin = new WmsBin()
.setId(IdUtil.getSnowflakeNextId()) // .setId(IdUtil.getSnowflakeNextId())
.setWarehouseId(dbWarehouse.getId()) // .setWarehouseId(dbWarehouse.getId())
.setNo(sapBinNo) // .setNo(sapBinNo)
.setName(sapBinNo) // .setName(sapBinNo)
.setCreateBy("SAP同步") // .setCreateBy("SAP同步")
.setCreateTime(LocalDateTime.now()); // .setCreateTime(LocalDateTime.now());
binsForAdd.add(dbBin); // binsForAdd.add(dbBin);
} // }
dbBins.add(dbBin); // dbBins.add(dbBin);
} // }
if (Objects.isNull(dbStorage)) { // if (Objects.isNull(dbStorage)) {
log.info("添加,仓库:{},储位:{}", dto.getWarehouseNo(), sapBinNo); // log.info("添加,仓库:{},储位:{}", dto.getWarehouseNo(), sapBinNo);
WmsStorage storage = new WmsStorage() // WmsStorage storage = new WmsStorage()
.setId(IdUtil.getSnowflakeNextId()) // .setId(IdUtil.getSnowflakeNextId())
.setMaterialNo(dto.getMaterialNo()) // .setMaterialNo(dto.getMaterialNo())
.setWarehouseId(dbWarehouse.getId()) // .setWarehouseId(dbWarehouse.getId())
.setMaterialDesc(dto.getMaterialDesc()) // .setMaterialDesc(dto.getMaterialDesc())
.setRemark("从SAP同步") // .setRemark("从SAP同步")
.setCreateBy("SAP同步") // .setCreateBy("SAP同步")
.setCreateTime(LocalDateTime.now()); // .setCreateTime(LocalDateTime.now());
storagesForAdd.add(storage); // storagesForAdd.add(storage);
if (StrUtil.isNotBlank(sapBinNo)) { // if (StrUtil.isNotBlank(sapBinNo)) {
storageBins.add(new WmsStorageBin() // storageBins.add(new WmsStorageBin()
.setStorageId(storage.getId()) // .setStorageId(storage.getId())
.setBinId(dbBin.getId())); // .setBinId(dbBin.getId()));
} // }
} else { // } else {
log.info("更新,仓库:{},储位:{}", dto.getWarehouseNo(), sapBinNo); // log.info("更新,仓库:{},储位:{}", dto.getWarehouseNo(), sapBinNo);
if (!StrUtil.equals(dbStorage.getWarehouseNo(), dto.getWarehouseNo())) { // if (!StrUtil.equals(dbStorage.getWarehouseNo(), dto.getWarehouseNo())) {
storagesForUpdate.add(new WmsStorage() // storagesForUpdate.add(new WmsStorage()
.setId(dbStorage.getId()) // .setId(dbStorage.getId())
.setWarehouseId(dbWarehouse.getId()) // .setWarehouseId(dbWarehouse.getId())
.setUpdateBy("SAP同步") // .setUpdateBy("SAP同步")
.setUpdateTime(LocalDateTime.now())); // .setUpdateTime(LocalDateTime.now()));
} // }
if (StrUtil.isNotBlank(sapBinNo)) { // if (StrUtil.isNotBlank(sapBinNo)) {
storageBins.add(new WmsStorageBin() // storageBins.add(new WmsStorageBin()
.setStorageId(dbStorage.getId()) // .setStorageId(dbStorage.getId())
.setBinId(dbBin.getId())); // .setBinId(dbBin.getId()));
} // }
} // }
} // }
} // }
}); // });
if (CollectionUtil.isNotEmpty(storagesForAdd)) { // if (CollectionUtil.isNotEmpty(storagesForAdd)) {
storageService.saveBatch(storagesForAdd, 1000); // storageService.saveBatch(storagesForAdd, 1000);
} // }
if (CollectionUtil.isNotEmpty(storagesForUpdate)) { // if (CollectionUtil.isNotEmpty(storagesForUpdate)) {
storageService.updateBatchById(storagesForUpdate, 1000); // storageService.updateBatchById(storagesForUpdate, 1000);
} // }
if (CollectionUtil.isNotEmpty(storageBins)) { // if (CollectionUtil.isNotEmpty(storageBins)) {
storageBinService.saveBatch(storageBins, 1000); // storageBinService.saveBatch(storageBins, 1000);
} // }
if (CollectionUtil.isNotEmpty(binsForAdd)) { // if (CollectionUtil.isNotEmpty(binsForAdd)) {
wmsBinService.saveBatch(binsForAdd, 1000); // wmsBinService.saveBatch(binsForAdd, 1000);
} // }
} // }
return "共同步" + list.size() + "条数据"; // return "共同步" + list.size() + "条数据";
} // }
public WarehouseVO getInfo(Long id) { public WarehouseVO getInfo(Long id) {
return warehouseService.getInfo(id); return warehouseService.getInfo(id);

View File

@ -28,7 +28,7 @@ import java.util.Objects;
/** /**
* 从SAP同步物料存储信息 * 从SAP同步物料存储信息
*/ */
@Component(value = "SyncStorageFromSAPProcessor") //@Component(value = "SyncStorageFromSAPProcessor")
public class SyncStorageFromSAPProcessor implements BasicProcessor { public class SyncStorageFromSAPProcessor implements BasicProcessor {
@Resource @Resource

View File

@ -18,7 +18,7 @@ import java.util.List;
/** /**
* 同步物料存储位置到SAP * 同步物料存储位置到SAP
*/ */
@Component(value = "SyncStorageToSAPProcessor") //@Component(value = "SyncStorageToSAPProcessor")
public class SyncStorageToSAPProcessor implements BasicProcessor { public class SyncStorageToSAPProcessor implements BasicProcessor {
@Resource @Resource

View File

@ -160,7 +160,7 @@ public class MaterialController extends BaseController {
dbMaterial.setLength(data.getLength()); dbMaterial.setLength(data.getLength());
dbMaterial.setWidth(data.getWidth()); dbMaterial.setWidth(data.getWidth());
dbMaterial.setHeight(data.getHeight()); dbMaterial.setHeight(data.getHeight());
dbMaterial.setUpdateBy(UserUtil.getUserName()); dbMaterial.setUpdateBy("同步");
dbMaterial.setUpdateTime(LocalDateTime.now()); dbMaterial.setUpdateTime(LocalDateTime.now());
shipmentMaterialService.updateById(dbMaterial); shipmentMaterialService.updateById(dbMaterial);
}); });
@ -171,7 +171,7 @@ public class MaterialController extends BaseController {
if (CollectionUtil.isNotEmpty(datas)) { if (CollectionUtil.isNotEmpty(datas)) {
shipmentMaterialService.saveBatch(datas.stream().map(data -> { shipmentMaterialService.saveBatch(datas.stream().map(data -> {
WmsShipmentMaterial material = Convert.convert(WmsShipmentMaterial.class, data); WmsShipmentMaterial material = Convert.convert(WmsShipmentMaterial.class, data);
material.setCreateBy(UserUtil.getUserName()); material.setCreateBy("同步");
material.setCreateTime(LocalDateTime.now()); material.setCreateTime(LocalDateTime.now());
return material; return material;
}).toList()); }).toList());