refactor(int-core): 重构库存记录同步逻辑

- 修改了 inventoryRecordMapper.getByType 方法的调用,增加了第二个参数
- 优化了库存记录处理流程,移除了冗余代码
- 新增了 updateCallErp 方法,用于更新调用 ERP 后的库存记录状态
- 在处理物料消耗报工和批次完工入库报工时,增加了 isSap 字段的设置
This commit is contained in:
tangyu 2025-01-17 14:24:42 +08:00
parent e74a3c2c96
commit 5be9f518a1

View File

@ -68,7 +68,7 @@ public class CopyShopOrderStatisticTransController {
@SysLog("生产管理报工平台-工单报工")
@PostMapping("/callErp")
public R callErp() {
R<List<InventoryRecord>> byType = inventoryRecordMapper.getByType("0");
R<List<InventoryRecord>> byType = inventoryRecordMapper.getByType("0", "1");
List<InventoryRecord> inventoryRecordList = byType.getData();
// if (inventoryRecordList.size() == 0){
// return R.failed("没有需要同步的库存数据");
@ -81,6 +81,13 @@ public class CopyShopOrderStatisticTransController {
newList.add(inventoryRecord);
}
// R<List<InventoryRecord>> listR = inventoryRecordMapper.selectBySyncStatus();
// List<InventoryRecord> inventoryRecords = listR.getData();
// for (InventoryRecord inventoryRecord : inventoryRecords) {
//
// processInventoryRecord(inventoryRecord, site);
// }
//========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
@ -110,7 +117,7 @@ public class CopyShopOrderStatisticTransController {
invokeRequest.setRetry(false);
TenantContextHolder.setTenantId(site);
invokeResponse = inventoryRecordService.call(invokeRequest);
invokeResponse = updateLotComplete(invokeResponse.getObjectResponse(), newList, invokeResponse);
invokeResponse = updateCallErp(invokeResponse.getObjectResponse(), newList, invokeResponse);
}
} catch (Exception e) {
@ -123,12 +130,12 @@ public class CopyShopOrderStatisticTransController {
if ("E".equals(invokeResponse.getResult())) {
return R.failed(invokeResponse.getMessageContent());
} else {
R<List<InventoryRecord>> listR = inventoryRecordMapper.selectBySyncStatus();
List<InventoryRecord> inventoryRecords = listR.getData();
for (InventoryRecord inventoryRecord : inventoryRecords) {
processInventoryRecord(inventoryRecord, site);
}
// R<List<InventoryRecord>> listR = inventoryRecordMapper.selectBySyncStatus();
// List<InventoryRecord> inventoryRecords = listR.getData();
// for (InventoryRecord inventoryRecord : inventoryRecords) {
//
// processInventoryRecord(inventoryRecord, site);
// }
return R.ok();
}
@ -274,7 +281,7 @@ public class CopyShopOrderStatisticTransController {
@SysLog("生产管理报工平台-物料消耗报工")
@PostMapping("/callErpMaterial")
public R callErpMaterial() {
R<List<InventoryRecord>> byType = inventoryRecordMapper.getByType("1");
R<List<InventoryRecord>> byType = inventoryRecordMapper.getByType("1","0");
List<InventoryRecord> inventoryRecords = byType.getData();
// if (inventoryRecords.size() == 0){
// return R.failed("没有需要同步的库存数据");
@ -379,6 +386,7 @@ public class CopyShopOrderStatisticTransController {
targetObj.setSyncVoucherNo(mblnr);
targetObj.setCreator(SecurityUtils.getUserName());
targetObj.setDateCreate(LocalDateTime.now());
targetObj.setIsSap("1");
R r = inventoryRecordMapper.apiUpdateById(targetObj);
r.getMsg();
}
@ -420,7 +428,7 @@ public class CopyShopOrderStatisticTransController {
@SysLog("生产管理报工平台-批次完工入库报工")
@PostMapping("/callErpLot")
public R callErpLot() {
R<List<InventoryRecord>> byType = inventoryRecordMapper.getByType("0");
R<List<InventoryRecord>> byType = inventoryRecordMapper.getByType("0","0");
List<InventoryRecord> inventoryRecords = byType.getData();
// if (inventoryRecords.size() == 0){
// return R.failed("没有需要同步的库存数据");
@ -517,6 +525,36 @@ public class CopyShopOrderStatisticTransController {
}
}
public InvokeResponse updateCallErp(JSONObject jsonObject, List<InventoryRecord> srcList, InvokeResponse invokeResponse) {
JSONObject bodyJson = jsonObject.getJSONObject("RESPONSE_BODY");
JSONObject outJson = bodyJson.getJSONObject("ES_OUTPUT");
String rmzhl = outJson.getString("RMZHL");
String rueck = outJson.getString("RUECK");
String result = outJson.getString("MSGTY");
String message = outJson.getString("MSGTX");
String msgNo = outJson.getString("MSGNO");
String mblnr = outJson.getString("MBLNR");
String msgid = outJson.getString("MSGID");// 物料凭证编号
for (InventoryRecord targetObj : srcList) {
targetObj.setSyncTicketLine(rmzhl);
targetObj.setSyncTicketNo(rueck);
targetObj.setSyncStatus(result);
targetObj.setSyncMessageText(message);
targetObj.setSyncMessageNo(msgNo);
targetObj.setSyncVoucherNo(mblnr);
targetObj.setSyncSubmitter(SecurityUtils.getUserName());
targetObj.setCreator(SecurityUtils.getUserName());
targetObj.setDateCreate(LocalDateTime.now());
targetObj.setSyncMessageRemark(msgid);
targetObj.setIsSap("2");
R r = inventoryRecordMapper.apiUpdateById(targetObj);
r.getMsg();
}
invokeResponse.setResult(result);
invokeResponse.setMessageContent(message);
return invokeResponse;
}
public InvokeResponse updateLotComplete(JSONObject jsonObject, List<InventoryRecord> srcList, InvokeResponse invokeResponse) {
JSONObject bodyJson = jsonObject.getJSONObject("RESPONSE_BODY");
JSONObject outJson = bodyJson.getJSONObject("ES_OUTPUT");
@ -538,6 +576,7 @@ public class CopyShopOrderStatisticTransController {
targetObj.setCreator(SecurityUtils.getUserName());
targetObj.setDateCreate(LocalDateTime.now());
targetObj.setSyncMessageRemark(msgid);
targetObj.setIsSap("1");
R r = inventoryRecordMapper.apiUpdateById(targetObj);
r.getMsg();
}