rsf-admin/src/i18n/zh.js
@@ -5,7 +5,12 @@ hello: '你好世界', resources: { config: { name: '配置参数' }, asnOrderItem: { name: '收货明细' }, outStockItem: { name: '出库单明细' }, }, // 扁平 key,供部分 i18n 按字符串查找资源标题,避免显示 Asnorder/Outstock 'resources.asnOrderItem.name': '收货明细', 'resources.outStockItem.name': '出库单明细', common: { response: { success: "操作成功", @@ -1440,6 +1445,7 @@ bulk_actions: '%{smart_count} 条被选中 |||| %{smart_count} 条被选中', }, page: { edit: '%{name}', empty_with_filters: '使用当前过滤条件未找到结果。', loading: '加载中', }, rsf-admin/src/page/statistics/stockManage/WarehouseStockList.jsx
@@ -230,7 +230,7 @@ rowClick={false} expand={false} expandSingle={true} omit={['id', 'createTime', 'locId', 'spec', 'model', 'locCode', 'orderId', 'orderItemId', 'matnrId', 'splrBatch', 'createBy', 'memo', 'fieldsIndex', 'updateBy$']} omit={['id', 'createTime', 'locId', 'locCode', 'orderId', 'orderItemId', 'matnrId', 'splrBatch', 'createBy', 'memo', 'fieldsIndex', 'updateBy$']} > {columns.map((column) => column)} </StyledDatagrid>} rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsErpServiceImpl.java
@@ -177,6 +177,9 @@ } else if (params.getCreateTime() != null) { m.put("arrTime", params.getCreateTime()); } if (params.getCreateTime() != null) { m.put("createTime", params.getCreateTime()); } return m; } rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrderParams.java
@@ -51,6 +51,12 @@ @JsonDeserialize(using = FlexibleDateDeserializer.class) private Date arrTime; @ApiModelProperty("创建时间,ERP 传则作为通知单创建时间") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonDeserialize(using = FlexibleDateDeserializer.class) private Date createTime; @ApiModelProperty("单据明细信息") private List<SyncOrdersItem> orderItems; } rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java
@@ -34,7 +34,10 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.*; import java.util.stream.Collectors; @Service public class PdaCheckOrderServiceImpl implements PdaCheckOrderService { @@ -62,6 +65,12 @@ private ReportMsgService reportMsgService; @Autowired private UserService userService; @Autowired private CheckOrderItemService checkOrderItemService; @Autowired private CheckOrderService checkOrderService; @Override @@ -202,6 +211,43 @@ throw new CoolException("更新差异单失败"); } // 按盘点单明细汇总实盘数量并回写 Set<Long> taskItemIds = diffItems.stream().map(CheckDiffItem::getTaskItemId).filter(Objects::nonNull).collect(Collectors.toSet()); if (!taskItemIds.isEmpty()) { List<TaskItem> taskItems = taskItemService.listByIds(taskItemIds); Map<Long, BigDecimal> orderItemIdToCheckQty = new HashMap<>(); for (CheckDiffItem di : diffItems) { if (di.getTaskItemId() == null) { continue; } TaskItem ti = taskItems.stream().filter(t -> t.getId().equals(di.getTaskItemId())).findFirst().orElse(null); if (ti == null || ti.getOrderItemId() == null) { continue; } Double cq = di.getCheckQty() != null ? di.getCheckQty() : 0.0; orderItemIdToCheckQty.merge(ti.getOrderItemId(), BigDecimal.valueOf(cq), BigDecimal::add); } for (Map.Entry<Long, BigDecimal> e : orderItemIdToCheckQty.entrySet()) { double workQty = e.getValue().setScale(6, RoundingMode.HALF_UP).doubleValue(); if (!checkOrderItemService.update(new LambdaUpdateWrapper<WkOrderItem>() .eq(WkOrderItem::getId, e.getKey()) .set(WkOrderItem::getWorkQty, workQty))) { throw new CoolException("盘点单明细实盘数量更新失败"); } } if (checkDiff.getOrderId() != null) { List<WkOrderItem> orderItems = checkOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, checkDiff.getOrderId())); BigDecimal orderWorkQty = orderItems.stream() .map(oi -> oi.getWorkQty() != null ? BigDecimal.valueOf(oi.getWorkQty()) : BigDecimal.ZERO) .reduce(BigDecimal.ZERO, BigDecimal::add); if (!checkOrderService.update(new LambdaUpdateWrapper<WkOrder>() .eq(WkOrder::getId, checkDiff.getOrderId()) .set(WkOrder::getWorkQty, orderWorkQty.setScale(6, RoundingMode.HALF_UP).doubleValue()))) { throw new CoolException("盘点单主表实盘数量更新失败"); } } } task.setTaskStatus(TaskStsType.COMPLETE_OUT.id); task.setUpdateBy(loginUserId); task.setUpdateTime(new Date()); rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
@@ -510,7 +510,7 @@ .setArrTime(syncOrder.getArrTime()) .setStationId(syncOrder.getStationId()) .setId(null) .setCreateTime(new Date()) .setCreateTime(syncOrder.getCreateTime() != null ? syncOrder.getCreateTime() : new Date()) .setUpdateTime(new Date()) .setCreateBy(loginUserId) .setUpdateBy(loginUserId); rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderLog.java
@@ -257,7 +257,6 @@ } return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.arrTime); } public String getRleStatus$(){ if (null == this.rleStatus){ return null; } switch (this.rleStatus){ rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java
@@ -72,7 +72,7 @@ * @description 删除已完成订单加入Log表 * @time 2025/3/19 19:09 */ @Scheduled(cron = "0 0 5 * * ?") @Scheduled(cron = "0 */1 * * * ?") @Transactional(rollbackFor = Exception.class) public void InStockToLog() { List<WkOrder> wkOrders = asnOrderService.list(new LambdaQueryWrapper<WkOrder>()