fix(inventory): 修正批次号赋值及物料扫码逻辑错误

- 将InProduceOrderController中批次号赋值改为使用item.getBatchNo()
- 在bomService扫描类型判断后正确设置物料齐套状态isQiTao
- 根据物料编号匹配替换接收物料查询条件中的ID匹配为materialNo匹配
- 统一调整各Controller中获取扫描类型type的缩进格式
- 修正OutProduceController中获取扫描类型的位置及相关逻辑
- 优化TransferCompanyController更新仓储信息逻辑,避免空列表更新异常
- 调整SapService日志等级,SAP返回表打印改为trace,避免日志过多
- 修正WmsStructuralPackageOrderMapper.xml中字段别名factory_code为factory_no
This commit is contained in:
曹鹏飞 2025-12-08 17:30:27 +08:00
parent cf142fe4ea
commit 81b9f5c7bb
7 changed files with 21 additions and 14 deletions

View File

@ -224,7 +224,7 @@ public class InProduceOrderController extends BaseController {
dto.setPrintNum(DF.format(BigDecimal.ONE));
}
dto.setSupplierCode("");
dto.setBatchNo("");
dto.setBatchNo(item.getBatchNo());
dto.setQrCode(QRCodeUtil.generateQRCodeBase64(generateQRContent(dto, ""), 100, 100));
datas.add(dto);
}
@ -304,6 +304,7 @@ public class InProduceOrderController extends BaseController {
.toList();
Integer type = bomService.getScanType(it.getMaterialNo());
children.forEach(child -> {
child.setQiTao(Objects.nonNull(type));
if (Objects.equals(type, 0)) {
child.setMustScan(false);
}
@ -355,7 +356,7 @@ public class InProduceOrderController extends BaseController {
datas.forEach(it -> {
InProduceOrderReceiveMaterialQO materialQO = request.getItems()
.stream()
.filter(q -> Objects.equals(q.getId(), it.getId()))
.filter(q -> StrUtil.equals(q.getMaterialNo(), it.getMaterialNo()))
.findFirst()
.orElse(null);
if (Objects.isNull(materialQO)) {

View File

@ -281,7 +281,6 @@ public class OutProduceController extends BaseController {
WmsOutProduce order = outProduceService.lambdaQuery().eq(WmsOutProduce::getNo, no).one();
VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("订单不存在");
List<WmsOutProduceItem> datas = outProduceItemService.getList(order.getId());
Integer type = bomService.getScanType(order.getPlnbez());
return ApiResult.success(new OutProduce1VO()
.setId(order.getId())
.setAufnr(order.getAufnr())
@ -300,6 +299,7 @@ public class OutProduceController extends BaseController {
.setMeins(item.getMeins())
.setNum(item.getSqsl().subtract(item.getNum()));
vo.setQiTao(bomService.isParent(item.getMatnr()));
Integer type = bomService.getScanType(item.getMatnr());
if (vo.isQiTao() && Objects.equals(type, 1)) {
vo.setChildren(bomService.getChildrenVO(item.getMatnr()));
}

View File

@ -519,16 +519,19 @@ public class TransferCompanyController extends BaseController {
.setCreateTime(Instant.now())
);
});
List<TransferCompanyItemVO> items = transferCompanyTicketItemService.getList(ticket.getId());
items.removeIf(it -> qo.getItems().stream().anyMatch(q -> Objects.equals(q.getId(), it.getId())));
VUtil.trueThrowBusinessError(CollectionUtil.isNotEmpty(items))
.throwMessage("以下物料未设置入库储位:" + StrUtil.join(",", items.stream().map(TransferCompanyItemVO::getMatnr).toList()));
// List<TransferCompanyItemVO> items = transferCompanyTicketItemService.getList(ticket.getId());
// items.removeIf(it -> qo.getItems().stream().anyMatch(q -> Objects.equals(q.getId(), it.getId())));
// VUtil.trueThrowBusinessError(CollectionUtil.isNotEmpty(items))
// .throwMessage("以下物料未设置入库储位:" + StrUtil.join(",", items.stream().map(TransferCompanyItemVO::getMatnr).toList()));
List<WmsTransferCompanyTicketItem> ticketItems = qo.getItems().stream()
.filter(it -> StrUtil.isNotBlank(it.getBinNos()))
.map(q -> new WmsTransferCompanyTicketItem()
.setId(q.getId())
.setBinNos1(q.getBinNos())
).toList();
transferCompanyTicketItemService.updateBatchById(ticketItems);
if (CollectionUtil.isNotEmpty(ticketItems)) {
transferCompanyTicketItemService.updateBatchById(ticketItems);
}
inventoryService.in(records.stream()
.collect(Collectors.groupingBy(InMaterialScanRecord::getKey))
.values()

View File

@ -415,7 +415,7 @@ public class SapService {
.throwMessage(STATE.SAPErr, "SAP" + structure.getString("MSG"));
JCoTable table = function.getTableParameterList().getTable("T_OUT");
log.info("SAP返回: {}", table);
log.trace("SAP返回: {}", table);
List<SAPMaterialInfoInOrderDTO> datas = JCoUtil.toBeanList(table, SAPMaterialInfoInOrderDTO.class);
log.debug("数据:{}", JSONUtil.toJsonStr(datas));
return datas;

View File

@ -1,7 +1,6 @@
package com.nflg.wms.common.pojo.qo;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.util.List;
@ -9,9 +8,6 @@ import java.util.List;
@Data
public class InProduceOrderReceiveMaterialQO {
@NotNull
private Long id;
/**
* 物料编号
*/

View File

@ -1,5 +1,6 @@
package com.nflg.wms.common.pojo.vo;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.experimental.Accessors;
@ -66,6 +67,12 @@ public class InProduceOrderItemVO {
*/
private String sernr;
/**
* 是否齐套物料
*/
@JsonProperty("isQiTao")
private boolean isQiTao = false;
/**
* 是否必须扫码如果为false的话可以不扫码
*/

View File

@ -50,7 +50,7 @@
<select id="getInfo" resultType="com.nflg.wms.common.pojo.vo.DeliverStructuralPackageOrderVO">
SELECT o.*,m.no||wb."no" AS "workbench_code",us.supplier_code,us.supplier_name,sp.order_no AS "package_order_no"
,sp."no" AS "package_no",sp."name" AS "package_desc",m."no" AS "model_no",di.code AS "factory_code"
,sp."no" AS "package_no",sp."name" AS "package_desc",m."no" AS "model_no",di.code AS "factory_no"
FROM wms_structural_package_order o
LEFT JOIN wms_workbench wb ON o.workbench_id=wb."id"
LEFT JOIN user_supplier us ON o.supplier_id=us.id