PDA抄码修改

This commit is contained in:
秦鸿展
2026-04-16 15:40:55 +08:00
parent 62f09f74f6
commit c3b8779c85
5 changed files with 303 additions and 84 deletions
@@ -53,6 +53,9 @@ public class ReceiptMaterialDetailDTO extends BaseVOEntity {
@Excel(name = "物料基础信息id")
private Long materialBaseInfoId;
@ApiModelProperty("是否抄码(物料主数据): 1-是 2-否,与 PC 明细一致")
private Integer copyCode;
@ApiModelProperty("物料编码")
@Excel(name = "物料编码")
private String materialCode;
@@ -297,7 +300,7 @@ public class ReceiptMaterialDetailDTO extends BaseVOEntity {
@Excel(name = "抄码数量")
private String copyQuantity;
@ApiModelProperty("抄码数量克重详情")
@ApiModelProperty("抄码数量克重详情JSON 字符串,key 为序号(1,2,3…)value 为单件净重KG(支持小数)。例:{\"1\":1.343,\"2\":1.343};上架完成后写入 copy_code_reference")
@Excel(name = "抄码数量克重详情")
private String copyDetails;
}
@@ -18,9 +18,17 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
* 收货单Api
* 收货单 PDA Api
* <p>
* 抄码收货方式与 PC 端 {@code StockReceiptOrderApi#getInfo} 一致:均来自物料主数据「是否抄码」({@code copyCode}1-是 2-否)
* 在明细上由服务端填充(见 {@link com.mhd.wms.application.service.stockReceiptOrder.StockReceiptOrderApplicationService#getInfoByApp} /
* {@link com.mhd.wms.application.service.stockReceiptOrder.StockReceiptOrderApplicationService#getInfo} 中的单位/包装填充逻辑)。
* 提交收货仍使用 {@link #receivingGoods},抄码实绩字段(托盘号、抄码批次、抄码数量、克重明细等)随明细 JSON 与 PC 相同。
* 若列表页未拉详情,可在点击「收货」前调用 {@link #getCopyCodeForReceiptLine} 或 {@link #getCopyCodeByMaterialBaseInfoId} 仅取抄码标识。
* </p>
*
* @author gen
* @date 2024-05-21
@@ -63,6 +71,31 @@ public class StockReceiptOrderAppApi extends BaseController {
return AjaxResult.success(stockReceiptOrderApplicationService.getInfoByApp(receiptOrderId, receiptStatus));
}
/**
* PDA:按收货单行查询是否抄码(与 PC 物料主数据 copyCode 一致)。列表未拉 {@link #getInfoByApp} 时,点击「收货」前调用本接口即可分流抄码页/普通收货页。
*
* @return data 含 copyCode(1-是 2-否)、materialBaseInfoId、materialDetailId
*/
@ApiOperation("按收货明细行查询是否抄码(与PC同源,供跳转抄码收货页)")
@GetMapping("/getCopyCodeForReceiptLine")
public AjaxResult getCopyCodeForReceiptLine(
@ApiParam(value = "收货单ID", required = true) @RequestParam Long receiptOrderId,
@ApiParam(value = "收货明细 material_detail_id", required = true) @RequestParam Long materialDetailId) {
Map<String, Object> data = stockReceiptOrderApplicationService.getCopyCodeForPdaReceiptLine(receiptOrderId, materialDetailId);
return AjaxResult.success(data);
}
/**
* PDA:仅已知物料基础信息 ID 时查询是否抄码(与 PC 一致)。列表若已带 materialBaseInfoId 可直调,无需整单详情。
*/
@ApiOperation("按物料基础信息ID查询是否抄码")
@GetMapping("/getCopyCodeByMaterialBaseInfoId")
public AjaxResult getCopyCodeByMaterialBaseInfoId(
@ApiParam(value = "物料基础信息ID", required = true) @RequestParam Long materialBaseInfoId) {
Map<String, Object> data = stockReceiptOrderApplicationService.getCopyCodeByMaterialBaseInfoId(materialBaseInfoId);
return AjaxResult.success(data);
}
/**
* PDA:查询某计划行(卡片)下所有 level=2 分批收货子行(含首笔仅落主行时的主行快照),附带序列号。
*/
@@ -78,9 +111,10 @@ public class StockReceiptOrderAppApi extends BaseController {
}
/**
* 收货
* 收货(与 PC 同源)。抄码物料请在对应明细上传 copyBatch、palletNumber、copyQuantity、copyDetails
* copyDetails 为 JSON:序号 → 单件净重(KG),如 {"1":1.343,"2":1.343};抄码对照表在上架完成入账后写入,非本接口直接写。
*/
@ApiOperation("收货")
@ApiOperation("收货(抄码明细字段见 materialDetailList.copyDetails 等,与 PC 一致)")
@PostMapping("/receivingGoods")
public AjaxResult receivingGoods(@RequestBody StockReceiptOrderDTO stockReceiptOrderDTO) {
// 勿用 Hutool JSON 往返转 DO:嵌套 children、receiptGrossWeight/receiptNetWeight/receiptVolume/receiptArea 等会丢失或类型不对,导致累计未落库