diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java index 065e374f3..456706af6 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/materialBaseInfo/MaterialBaseInfoApplicationService.java @@ -473,18 +473,36 @@ public class MaterialBaseInfoApplicationService { fillClassifyTypeAndUnit(row); Object result = systemServiceFeign.getPackList(null, row.getPackName(), row.getOrganizationId()); + if (result == null) { + errors.append("第").append(rowNum).append("行:包装规格查询无返回,请稍后重试或检查系统服务;"); + continue; + } Map resultMap = JSON.parseObject(JSONObject.toJSONString(result), new TypeReference>() {}); List> rowsPack = extractTableDataRows(resultMap); - Map stringObjectMap = rowsPack.get(0); - if (stringObjectMap != null){ - String packCode = stringObjectMap.get("packCode") == null ? "" : String.valueOf(stringObjectMap.get("packCode")); - row.setPackCode(packCode); - String packId = stringObjectMap.get("packId") == null ? "" : String.valueOf(stringObjectMap.get("packId")); - row.setPackId(Long.valueOf(packId)); - String unitName = stringObjectMap.get("unitName") == null ? "" : String.valueOf(stringObjectMap.get("unitName")); - row.setUnitCode("EA"); - row.setUnitName(unitName); + if (CollectionUtils.isEmpty(rowsPack)) { + if (StringUtils.isNotBlank(row.getPackName())) { + errors.append("第").append(rowNum).append("行:包装规格「").append(row.getPackName()).append("」不存在或未在系统中维护,请先在主数据维护该包装;"); + } else { + errors.append("第").append(rowNum).append("行:包装规格未填写,或系统中无匹配的包装数据,请填写正确的包装规格名称;"); + } + continue; } + Map stringObjectMap = rowsPack.get(0); + if (stringObjectMap == null) { + errors.append("第").append(rowNum).append("行:包装规格查询结果为空,请检查包装主数据;"); + continue; + } + String packCode = stringObjectMap.get("packCode") == null ? "" : String.valueOf(stringObjectMap.get("packCode")); + row.setPackCode(packCode); + String packId = stringObjectMap.get("packId") == null ? "" : String.valueOf(stringObjectMap.get("packId")); + if (StringUtils.isBlank(packId) || !StringUtils.isNumeric(packId)) { + errors.append("第").append(rowNum).append("行:包装规格数据异常(缺少包装ID),请检查系统包装主数据;"); + continue; + } + row.setPackId(Long.valueOf(packId)); + String unitName = stringObjectMap.get("unitName") == null ? "" : String.valueOf(stringObjectMap.get("unitName")); + row.setUnitCode("EA"); + row.setUnitName(unitName); MaterialBaseInfoDO materialBaseInfoDO = new MaterialBaseInfoDO(); BeanUtils.copyProperties(row, materialBaseInfoDO); @@ -496,7 +514,7 @@ public class MaterialBaseInfoApplicationService { Long materialBaseInfoId = materialBaseInfoDO.getMaterialBaseInfoId(); //商品规则批次 - if (StringUtils.isNotBlank(row.getBatchRuleNameImport())){ + if (StringUtils.isNotBlank(row.getBatchRuleNameImport())) { MaterialGoodsRuleDO materialGoodsRuleDO = new MaterialGoodsRuleDO(); Object batchListByName = systemServiceFeign.getBatchListByName(row.getBatchRuleNameImport(), row.getOrganizationId()); Map batchListByNameMap = JSON.parseObject(JSONObject.toJSONString(batchListByName), new TypeReference>() {}); diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/service/ReviewOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/service/ReviewOrderDomainService.java index 525b069a6..f2e8dd727 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/service/ReviewOrderDomainService.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/pickingOrder/service/ReviewOrderDomainService.java @@ -210,6 +210,7 @@ public class ReviewOrderDomainService { d.setMaterialCode(line.getMaterialCode()); d.setMaterialName(line.getMaterialName()); d.setBarCode(line.getBarCode()); + d.setSize(line.getSize()); d.setUnitCode(line.getUnitCode()); d.setUnitName(line.getUnitName()); d.setLotNo(line.getLotNo()); @@ -272,6 +273,9 @@ public class ReviewOrderDomainService { if (!StringUtils.hasText(d.getBarCode())) { d.setBarCode(outMd.getBarCode()); } + if (!StringUtils.hasText(d.getSize()) && StringUtils.hasText(outMd.getSize())) { + d.setSize(outMd.getSize()); + } if (d.getMaterialBaseInfoId() == null) { d.setMaterialBaseInfoId(outMd.getMaterialBaseInfoId()); } diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/reviewOrder/entity/ReviewMaterialDetail.java b/mhd_wms/src/main/java/com/mhd/wms/domain/reviewOrder/entity/ReviewMaterialDetail.java index 6430dbcb6..30a5c5291 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/reviewOrder/entity/ReviewMaterialDetail.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/reviewOrder/entity/ReviewMaterialDetail.java @@ -42,6 +42,10 @@ public class ReviewMaterialDetail extends BaseVOEntity { private String barCode; + @ApiModelProperty("尺寸") + @TableField("SIZE") + private String size; + private String unitCode; private String unitName; diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/reviewOrder/repository/po/ReviewMaterialDetailPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/reviewOrder/repository/po/ReviewMaterialDetailPO.java index 8eb89e324..12328c7e4 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/reviewOrder/repository/po/ReviewMaterialDetailPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/reviewOrder/repository/po/ReviewMaterialDetailPO.java @@ -49,6 +49,9 @@ public class ReviewMaterialDetailPO extends BaseVOEntity { @ApiModelProperty("物料条码") private String barCode; + @ApiModelProperty("尺寸") + private String size; + @ApiModelProperty("单位代码") private String unitCode; diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/statementStatistics/po/ImmediateInventoryPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/statementStatistics/po/ImmediateInventoryPO.java index a3885172a..58685fd21 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/domain/statementStatistics/po/ImmediateInventoryPO.java +++ b/mhd_wms/src/main/java/com/mhd/wms/domain/statementStatistics/po/ImmediateInventoryPO.java @@ -134,4 +134,24 @@ public class ImmediateInventoryPO { @ApiModelProperty("LOT编号") @Excel(name = "LOT编号") private String lotNumber; + + @ApiModelProperty("库存更新时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date inventoryUpdateTime; + + @ApiModelProperty("拣货明细最近更新时间(本库存相关已拣货明细)") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date pickLastUpdateTime; + + @ApiModelProperty("复核明细最近更新时间(本库存相关复核条件内明细)") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date checkLastUpdateTime; + + @ApiModelProperty("列表排序用时间(库存/拣货/复核三者最晚)") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date latestChangeTime; } \ No newline at end of file diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/statementStatistics/StatementStatisticsApi.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/statementStatistics/StatementStatisticsApi.java index bd3a59e68..f4b7232de 100644 --- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/statementStatistics/StatementStatisticsApi.java +++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/statementStatistics/StatementStatisticsApi.java @@ -1,8 +1,11 @@ package com.mhd.wms.interfaces.facadeApi.statementStatistics; +import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.mhd.common.core.constant.HttpStatus; import com.mhd.common.core.utils.PageUtils; +import com.mhd.common.core.web.page.PageDomain; +import com.mhd.common.core.web.page.TableSupport; import com.mhd.common.core.web.page.TableDataInfo; import com.mhd.wms.application.service.statementStatistics.StatementStatisticsService; import com.mhd.wms.domain.statementStatistics.po.ImmediateInventoryPO; @@ -100,6 +103,18 @@ public class StatementStatisticsApi { PageUtils.startPage(); } + /** + * 即时库存分页:不注入 PageHelper 的 orderBy,保证仅使用 SQL 中的倒序(时间由晚到早)。 + */ + private void startPageImmediateInventory() + { + PageDomain pageDomain = TableSupport.buildPageRequest(); + Integer pageNum = pageDomain.getPageNum(); + Integer pageSize = pageDomain.getPageSize(); + Boolean reasonable = pageDomain.getReasonable(); + PageHelper.startPage(pageNum, pageSize, "").setReasonable(reasonable); + } + /** * 响应请求分页数据 */ diff --git a/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml b/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml index 980657c29..f04f9873b 100644 --- a/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml +++ b/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml @@ -540,6 +540,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + +