Browse Source

2025-09-16 pda 生产退仓上

master
fengyuan_yang 4 months ago
parent
commit
f0426642f8
  1. 36
      src/main/java/com/gaotao/modules/productionReturn/service/impl/ProductionReturnServiceImpl.java
  2. 8
      src/main/resources/mapper/inventoryStock/InventoryStockMapper.xml
  3. 47
      src/main/resources/mapper/productionReturn/ProductionReturnMapper.xml

36
src/main/java/com/gaotao/modules/productionReturn/service/impl/ProductionReturnServiceImpl.java

@ -99,11 +99,11 @@ public class ProductionReturnServiceImpl implements ProductionReturnService {
.map(label -> (String) label.get("labelCode"))
.collect(Collectors.toList());
// 3. 更新SFDC_ROLLS表中标签状态为"已入库"
int updatedLabels = productionReturnMapper.updateSfdcRollsStatus(labelCodes, "已入库", site, buNo);
if (updatedLabels != labelCodes.size()) {
throw new RuntimeException("部分标签状态更新失败");
}
// // 3. 更新SFDC_ROLLS表中标签状态为"已入库"
// int updatedLabels = productionReturnMapper.updateSfdcRollsStatus(labelCodes, "已入库", site, buNo);
// if (updatedLabels != labelCodes.size()) {
// throw new RuntimeException("部分标签状态更新失败");
// }
// 5. 插入库存数据
insertInventoryStock(orderNo, warehouseId, locationCode, labels, site, buNo);
@ -155,24 +155,24 @@ public class ProductionReturnServiceImpl implements ProductionReturnService {
// 转换数量
BigDecimal quantity = convertToDecimal(quantityObj);
// 查询库存是否已存在
InventoryStock existingStock = inventoryStockService.getByRollNo(labelCode, actualSite, actualBuNo, partNo, warehouseId, locationCode, batchNo);
if (existingStock != null) {
// 库存已存在更新数量
logger.info("库存记录已存在,更新数量,标签: {}, 原数量: {}, 增加数量: {}",
labelCode, existingStock.getQtyOnHand(), quantity);
// // 查询库存是否已存在
// InventoryStock existingStock = inventoryStockService.getByRollNo(labelCode, actualSite, actualBuNo, partNo, warehouseId, locationCode, batchNo);
//
// if (existingStock != null) {
// // 库存已存在更新数量
// logger.info("库存记录已存在,更新数量,标签: {}, 原数量: {}, 增加数量: {}",
// labelCode, existingStock.getQtyOnHand(), quantity);
boolean updateSuccess = inventoryStockService.updateInventoryQuantity(labelCode, quantity, actualSite, actualBuNo, partNo, warehouseId, locationCode, batchNo);
if (!updateSuccess) {
throw new RuntimeException("更新库存数量失败,标签: " + labelCode);
}
updatedCount++;
} else {
// 库存不存在创建新记录
InventoryStock inventoryStock = createNewInventoryStock(labelCode, partNo, warehouseId, locationCode, batchNo, quantity, orderNo, currentDate, actualSite, actualBuNo);
newInventoryList.add(inventoryStock);
}
// } else {
// // 库存不存在创建新记录
// InventoryStock inventoryStock = createNewInventoryStock(labelCode, partNo, warehouseId, locationCode, batchNo, quantity, orderNo, currentDate, actualSite, actualBuNo);
// newInventoryList.add(inventoryStock);
// }
}
// 批量插入新的库存记录
@ -345,7 +345,7 @@ public class ProductionReturnServiceImpl implements ProductionReturnService {
transDetail.setTransqty(quantity);
transDetail.setDirection("+");
transDetail.setOrderref2(buNo);
transDetail.setRemark("生产订单入库上架");
transDetail.setRemark("生产退仓上架");
transDetailList.add(transDetail);
itemNo += 1.0;
}

8
src/main/resources/mapper/inventoryStock/InventoryStockMapper.xml

@ -127,10 +127,10 @@
WHERE roll_no = #{rollNo}
AND site = #{site}
AND bu_no = #{buNo}
and part_no= #{partNo}
and warehouse_id = #{warehouseId}
and location_id = #{locationCode}
and batch_no = #{batchNo}
<!-- and part_no= #{partNo}-->
<!-- and warehouse_id = #{warehouseId}-->
<!-- and location_id = #{locationCode}-->
<!-- and batch_no = #{batchNo}-->
</update>
<!-- 更新库存数量h和状态 -->

47
src/main/resources/mapper/productionReturn/ProductionReturnMapper.xml

@ -43,17 +43,42 @@
<!-- 验证生产标签与入库单是否匹配 -->
<select id="validateLabelWithInbound" resultType="map">
select
A.site,
D.roll_no as labelCode,
D.part_no as partNo,
D.qty_on_hand as quantity
from TransHeader A
INNER JOIN SOIssueNotifyOrderList soi ON A.SITE = soi.SITE AND A.orderRef1 = soi.NotifyNo
INNER JOIN TransDetail B ON A.SITE = B.SITE AND A.TransNo = B.transNo
INNER JOIN TransDetailSub C ON C.SITE = B.SITE AND C.TransNo = B.transNo AND C.itemNo = B.itemNo
INNER JOIN inventory_stock D ON C.SITE = D.SITE AND C.subNo = D.roll_no AND D.status ='出库'
where A.TransType_DB ='SI' AND A.SITE = #{site} AND SOI.SOOrderNo = #{inboundNo} and C.SUBNO = #{labelCode}
SELECT
A.Site,
A.bu_no as buNo,
A.roll_no as labelCode,
A.roll_qty as quantity,
A.PART_NO AS partNo,
C.PartDescription,
A.document_no AS inboundNo
FROM StockTransactionLog A
INNER JOIN inventory_stock B ON A.SItE = B.site AND A.roll_no = B.roll_no
INNER JOIN PART C ON B.SITE = C.SITE AND B.part_no = C.PartNo AND B.bu_no = C.bu_no
WHERE
A.SITE = #{site}
AND A.document_no = #{inboundNo}
AND A.roll_no = #{labelCode}
AND ISNULL(B.consumed_flag, 'N') = 'N'
AND A.document_type = '生产领料'
UNION ALL
SELECT
B.site,
B.bu_no,
B.roll_no,
B.qty_on_hand AS roll_qty,
B.part_no,
C.PartDescription,
B.orderref1 AS order_no
FROM inventory_stock B
INNER JOIN PART C ON B.SITE = C.SITE AND B.part_no = C.PartNo AND B.bu_no = C.bu_no
WHERE
B.SITE = #{site}
AND B.orderref0 = '生产退料'
AND B.orderref1 = #{inboundNo}
AND ISNULL(B.consumed_flag, 'N') = 'N'
AND return_flag = 'Y'
AND status = '待入'
AND B.roll_no = #{labelCode}
</select>
<update id="updateSfdcRollsStatus">

Loading…
Cancel
Save