|
|
|
@ -262,7 +262,7 @@ public class PoServiceImpl extends ServiceImpl<PoMapper, PurchaseOrder> implemen |
|
|
|
handlingUnit.setStatusDb("ACTIVE"); |
|
|
|
handlingUnit.setFreezeFlag("N"); |
|
|
|
handlingUnit.setMergedFlag("N"); |
|
|
|
handlingUnit.setInStockFlag("N".equals(inData.getNeedCheck())?"Y":"N"); |
|
|
|
handlingUnit.setInStockFlag("N".equals(inData.getNeedCheck())?"Y":"X"); |
|
|
|
handlingUnit.setOrderRef1(inData.getPoNo()); |
|
|
|
handlingUnit.setOrderRef2(inData.getReceiptNo()); |
|
|
|
handlingUnit.setOrderRef3(inData.getOrderRef3()); |
|
|
|
@ -378,80 +378,6 @@ public class PoServiceImpl extends ServiceImpl<PoMapper, PurchaseOrder> implemen |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 委外 |
|
|
|
* @param inData |
|
|
|
*/ |
|
|
|
private void syncToIFSOfWeiWai(TransDetailDto inData, Map<String, Object> weiwaiMap) { |
|
|
|
try { |
|
|
|
Map<String, Object> params = Map.ofEntries( |
|
|
|
Map.entry("ifsDBName", ifsDBName), |
|
|
|
Map.entry("domainUserID", domainUserID), |
|
|
|
Map.entry("ifsSiteID", inData.getSite()), |
|
|
|
Map.entry("ifsOrderNo", inData.getOrderNo()), |
|
|
|
Map.entry("ifsLineNo", inData.getLineNo()), |
|
|
|
Map.entry("ifsReleaseNo", inData.getReleaseNo()), |
|
|
|
Map.entry("ifsLineItemNo", "1"), |
|
|
|
Map.entry("ifsOrderCode", "1"), |
|
|
|
Map.entry("ifsPartNo", weiwaiMap.get("componentPartNo")), |
|
|
|
Map.entry("ifsLocationNo", inData.getLocationNo()), |
|
|
|
Map.entry("ifsLotBatchNo", "2756083-*-*-1"), |
|
|
|
Map.entry("ifsSerialNo", "*"), |
|
|
|
Map.entry("ifsEngChgLevel", "1"), |
|
|
|
Map.entry("ifsWDRNo", "外发东琨"), |
|
|
|
Map.entry("ifsActivitySequenceNo", 0), |
|
|
|
Map.entry("ifsHandlingUnitID", 0), |
|
|
|
Map.entry("ifsReverseQty", "-"+inData.getTransQty()) |
|
|
|
); |
|
|
|
ObjectMapper objectMapper = new ObjectMapper(); |
|
|
|
String jsonBody = objectMapper.writeValueAsString(params); |
|
|
|
String PurchaseOrderReserveComponent = HttpUtils.doPost(ifsUrl+"PurchaseOrderReserveComponent",jsonBody,null); |
|
|
|
log.info("委外预留结果: {}", PurchaseOrderReserveComponent); |
|
|
|
if ("IFSUpdated".equals(PurchaseOrderReserveComponent) || "\"IFSUpdated\"".equals(PurchaseOrderReserveComponent)) { |
|
|
|
log.info("委外poIFS同步成功,PO号: {}", inData.getOrderNo()); |
|
|
|
} else { |
|
|
|
log.error("委外poIFS同步失败,PO号: {}, 响应: {}", inData.getOrderNo(), PurchaseOrderReserveComponent); |
|
|
|
// 同步失败需要回滚前面所有的数据库操作 |
|
|
|
throw new XJException("IFS同步失败,响应: " + PurchaseOrderReserveComponent); |
|
|
|
} |
|
|
|
Map<String, Object> params2 = Map.ofEntries( |
|
|
|
Map.entry("ifsDBName", ifsDBName), |
|
|
|
Map.entry("domainUserID", domainUserID), |
|
|
|
Map.entry("ifsSiteID", inData.getSite()), |
|
|
|
Map.entry("ifsOrderNo", inData.getOrderNo()), |
|
|
|
Map.entry("ifsLineNo", inData.getLineNo()), |
|
|
|
Map.entry("ifsReleaseNo", inData.getReleaseNo()), |
|
|
|
Map.entry("ifsLineItemNo", "1"), |
|
|
|
Map.entry("ifsOrderCode", "1"), |
|
|
|
Map.entry("ifsPartNo", weiwaiMap.get("componentPartNo")), |
|
|
|
Map.entry("ifsLocationNo", inData.getLocationNo()), |
|
|
|
Map.entry("ifsLotBatchNo", "2756083-*-*-1"), |
|
|
|
Map.entry("ifsSerialNo", "*"), |
|
|
|
Map.entry("ifsEngChgLevel", "1"), |
|
|
|
Map.entry("ifsWDRNo", "外发东琨"), |
|
|
|
Map.entry("ifsActivitySequenceNo", 0), |
|
|
|
Map.entry("ifsHandlingUnitID", 0), |
|
|
|
Map.entry("ifsQtyToShip", inData.getTransQty()) |
|
|
|
); |
|
|
|
String jsonBody2 = objectMapper.writeValueAsString(params2); |
|
|
|
String PurchaseOrderIssueComponent = HttpUtils.doPost(ifsUrl+"PurchaseOrderIssueComponent",jsonBody2,null); |
|
|
|
log.info("委外,PO号: {}", inData.getOrderNo()); |
|
|
|
if ("IFSUpdated".equals(PurchaseOrderIssueComponent) || "\"IFSUpdated\"".equals(PurchaseOrderIssueComponent)) { |
|
|
|
log.info("委外poIFS同步成功,PO号: {}", inData.getOrderNo()); |
|
|
|
} else { |
|
|
|
log.error("委外poIFS同步失败,PO号: {}, 响应: {}", inData.getOrderNo(), PurchaseOrderIssueComponent); |
|
|
|
// 同步失败需要回滚前面所有的数据库操作 |
|
|
|
throw new XJException("IFS同步失败,响应: " + PurchaseOrderIssueComponent); |
|
|
|
} |
|
|
|
} catch (XJException e) { |
|
|
|
// 重新抛出业务异常,确保事务回滚 |
|
|
|
throw e; |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("委外poIFS同步异常,PO号: {}, 错误: {}", inData.getOrderNo(), e.getMessage()); |
|
|
|
// 同步异常需要回滚前面所有的数据库操作 |
|
|
|
throw new XJException("IFS同步异常: " + e.getMessage()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 创建采购接收记录 |
|
|
|
@ -625,7 +551,7 @@ public class PoServiceImpl extends ServiceImpl<PoMapper, PurchaseOrder> implemen |
|
|
|
if (inData.getPurchaseUOM() != null && !"KG".equalsIgnoreCase(inData.getPurchaseUOM())) { |
|
|
|
poReceiptDetail.setWidth(BigDecimal.valueOf(1000)); |
|
|
|
} else { |
|
|
|
poReceiptDetail.setWidth(null); |
|
|
|
poReceiptDetail.setWidth(BigDecimal.valueOf(0)); |
|
|
|
} |
|
|
|
} |
|
|
|
// length就是数量除以width再乘以1000 |
|
|
|
@ -635,7 +561,7 @@ public class PoServiceImpl extends ServiceImpl<PoMapper, PurchaseOrder> implemen |
|
|
|
.multiply(BigDecimal.valueOf(1000)); |
|
|
|
poReceiptDetail.setLength(length); |
|
|
|
} else { |
|
|
|
poReceiptDetail.setLength(null); |
|
|
|
poReceiptDetail.setLength(BigDecimal.valueOf(0)); |
|
|
|
} |
|
|
|
// 备注信息 |
|
|
|
String remarkText = "PO接收自动创建"; |
|
|
|
|