|
|
@@ -8,14 +8,19 @@ import com.haha.common.enums.ReplenishmentOrderStatusEnum;
|
|
|
import com.haha.common.exception.BusinessException;
|
|
|
import com.haha.common.vo.PageResult;
|
|
|
import com.haha.common.vo.Result;
|
|
|
+import com.haha.common.enums.StockRecordStatus;
|
|
|
import com.haha.entity.Device;
|
|
|
import com.haha.entity.DeviceInventory;
|
|
|
import com.haha.entity.InventoryLog;
|
|
|
import com.haha.entity.Replenisher;
|
|
|
import com.haha.entity.ReplenishmentOrder;
|
|
|
import com.haha.entity.ReplenishmentOrderItem;
|
|
|
+import com.haha.entity.StockRecord;
|
|
|
+import com.haha.entity.StockRecordItem;
|
|
|
import com.haha.entity.dto.ReplenishDTO;
|
|
|
import com.haha.mapper.ReplenishmentOrderItemMapper;
|
|
|
+import com.haha.mapper.StockRecordItemMapper;
|
|
|
+import com.haha.mapper.StockRecordMapper;
|
|
|
import com.haha.service.DeviceInventoryService;
|
|
|
import com.haha.service.DeviceService;
|
|
|
import com.haha.service.InventoryLogService;
|
|
|
@@ -48,6 +53,8 @@ public class ReplenisherOperationController {
|
|
|
private final ReplenishmentOrderService replenishmentOrderService;
|
|
|
private final InventoryLogService inventoryLogService;
|
|
|
private final ReplenishmentOrderItemMapper orderItemMapper;
|
|
|
+ private final StockRecordMapper stockRecordMapper;
|
|
|
+ private final StockRecordItemMapper stockRecordItemMapper;
|
|
|
|
|
|
/**
|
|
|
* 获取当前补货员信息
|
|
|
@@ -372,6 +379,46 @@ public class ReplenisherOperationController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // 创建上货记录
|
|
|
+ if (successCount > 0) {
|
|
|
+ try {
|
|
|
+ StockRecord record = new StockRecord();
|
|
|
+ record.setDeviceId(dto.getDeviceId());
|
|
|
+ record.setStockType(2); // 补货
|
|
|
+ record.setStockerId(replenisher.getId());
|
|
|
+ record.setStockerName(replenisher.getName());
|
|
|
+ record.setStockerPhone(replenisher.getPhone());
|
|
|
+ record.setStatus(StockRecordStatus.COMPLETED.getCode());
|
|
|
+ record.setTotalItems(successCount);
|
|
|
+ record.setTotalQuantity(results.stream()
|
|
|
+ .filter(r -> Boolean.TRUE.equals(r.get("success")))
|
|
|
+ .mapToInt(r -> ((Number) r.get("quantity")).intValue()).sum());
|
|
|
+ record.setStartTime(java.time.LocalDateTime.now());
|
|
|
+ record.setEndTime(java.time.LocalDateTime.now());
|
|
|
+ record.setCreateTime(java.time.LocalDateTime.now());
|
|
|
+ record.setUpdateTime(java.time.LocalDateTime.now());
|
|
|
+ stockRecordMapper.insert(record);
|
|
|
+
|
|
|
+ // 创建明细
|
|
|
+ for (Map<String, Object> r : results) {
|
|
|
+ if (!Boolean.TRUE.equals(r.get("success"))) continue;
|
|
|
+ StockRecordItem item = new StockRecordItem();
|
|
|
+ item.setRecordId(record.getId());
|
|
|
+ item.setDeviceId(dto.getDeviceId());
|
|
|
+ item.setProductId(((Number) r.get("productId")).longValue());
|
|
|
+ item.setProductName((String) r.get("productName"));
|
|
|
+ item.setQuantity(((Number) r.get("quantity")).intValue());
|
|
|
+ item.setAfterStock(((Number) r.get("afterStock")).intValue());
|
|
|
+ item.setCreateTime(java.time.LocalDateTime.now());
|
|
|
+ stockRecordItemMapper.insert(item);
|
|
|
+ }
|
|
|
+
|
|
|
+ log.info("[补货操作] 上货记录创建成功: recordId={}, items={}", record.getId(), successCount);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("[补货操作] 创建上货记录失败: deviceId={}, error={}", dto.getDeviceId(), e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// 如果关联了补货单,自动完成
|
|
|
if (dto.getOrderId() != null && successCount > 0) {
|
|
|
try {
|