及时库存排序查询,复核添加尺寸字段,物料导入提示错误

This commit is contained in:
秦鸿展
2026-05-09 10:21:49 +08:00
parent 815ffc2a26
commit b456fb45f7
8 changed files with 170 additions and 11 deletions
@@ -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<String, Object> resultMap = JSON.parseObject(JSONObject.toJSONString(result), new TypeReference<Map<String, Object>>() {});
List<Map<String, Object>> rowsPack = extractTableDataRows(resultMap);
Map<String, Object> 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<String, Object> 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<String, Object> batchListByNameMap = JSON.parseObject(JSONObject.toJSONString(batchListByName), new TypeReference<Map<String, Object>>() {});
@@ -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());
}
@@ -42,6 +42,10 @@ public class ReviewMaterialDetail extends BaseVOEntity {
private String barCode;
@ApiModelProperty("尺寸")
@TableField("SIZE")
private String size;
private String unitCode;
private String unitName;
@@ -49,6 +49,9 @@ public class ReviewMaterialDetailPO extends BaseVOEntity {
@ApiModelProperty("物料条码")
private String barCode;
@ApiModelProperty("尺寸")
private String size;
@ApiModelProperty("单位代码")
private String unitCode;
@@ -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;
}
@@ -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);
}
/**
* 响应请求分页数据
*/