From 21db85ef2ba1d6fba7ce996312821820910e5283 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com>
Date: Fri, 24 Jul 2026 16:46:42 +0800
Subject: [PATCH] =?UTF-8?q?=E5=85=A5=E5=BA=93=E6=9F=A5=E8=AF=A2=E7=AD=BE?=
=?UTF-8?q?=E5=90=8D=E5=88=97=E8=A1=A8=E4=BB=A5=E5=8F=8A=E8=AF=A6=E6=83=85?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../StockInOrderApplicationService.java | 105 +++++++++++++++++-
.../stockInOrder/entity/StockInOrder.java | 15 +++
.../repository/po/StockInOrderPO.java | 18 +++
.../repository/todo/StockInOrderDO.java | 25 +++++
.../service/StockInOrderDomainService.java | 20 ++++
.../dto/stockInOrder/StockInOrderDTO.java | 20 ++++
.../stockInOrder/StockInOrderApi.java | 19 ++++
.../stockInOrder/StockInOrderMapper.xml | 15 ++-
8 files changed, 235 insertions(+), 2 deletions(-)
diff --git a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java
index 117efb435..a36cd4c49 100644
--- a/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java
+++ b/mhd_wms/src/main/java/com/mhd/wms/application/service/stockInOrder/StockInOrderApplicationService.java
@@ -159,7 +159,7 @@ public class StockInOrderApplicationService {
if (loginUser != null && loginUser.getUserPo() != null){
Long userOrganizationId = loginUser.getUserPo().getOrganizationId();
Long frontendOrganizationId = stockInOrderDO.getOrganizationId(); // 前端传递的 organizationId
-
+
// 数据权限:根据 organizationId 来设置查询权限
// 当前登录用户的 organizationId 为 2827 时,可查全部组织数据;其他组织只能查自己
if (userOrganizationId != null && userOrganizationId == 2827L) {
@@ -250,6 +250,86 @@ public class StockInOrderApplicationService {
return stockInOrderPOS;
}
+ /**
+ * PDA入库签名列表查询
+ *
+ *
参照简易模式快捷入库列表 {@link #queryList(StockInOrderDO)} 实现:
+ * 查询入库单状态为「已入库」(status=5) 的入库单列表,
+ * 支持按「作业任务人员」(workUserName) like 模糊查询以及其他常规查询条件。
+ */
+ public List querySignatureList(StockInOrderDO stockInOrderDO) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ if (loginUser != null && loginUser.getUserPo() != null) {
+ Long userOrganizationId = loginUser.getUserPo().getOrganizationId();
+ Long frontendOrganizationId = stockInOrderDO.getOrganizationId();
+
+ // 数据权限:与 queryList 保持一致
+ if (userOrganizationId != null && userOrganizationId == 2827L) {
+ if (frontendOrganizationId != null) {
+ stockInOrderDO.setOrganizationId(frontendOrganizationId);
+ stockInOrderDO.setTopOrganizationId(null);
+ } else {
+ stockInOrderDO.setOrganizationId(null);
+ stockInOrderDO.setTopOrganizationId(null);
+ }
+ } else {
+ if (frontendOrganizationId != null && userOrganizationId != null) {
+ if (!frontendOrganizationId.equals(userOrganizationId)) {
+ stockInOrderDO.setOrganizationId(userOrganizationId);
+ }
+ } else {
+ if (userOrganizationId != null) {
+ stockInOrderDO.setOrganizationId(userOrganizationId);
+ }
+ }
+ if (stockInOrderDO.getOrganizationId() == null) {
+ Long topOrganizationId = loginUser.getUserPo().getTopOrganizationId();
+ if (topOrganizationId != null && topOrganizationId != 1) {
+ stockInOrderDO.setTopOrganizationId(topOrganizationId);
+ }
+ } else {
+ stockInOrderDO.setTopOrganizationId(2827L);
+ }
+ }
+ // 默认仓库
+ if (stockInOrderDO.getWarehouseId() == null) {
+ AssociationWarehouseCacheDO associationWarehouseCacheDO =
+ SystemServiceCacheUtil.getAssociationWarehouseCache(loginUser.getUserid());
+ if (associationWarehouseCacheDO != null) {
+ stockInOrderDO.setWarehouseId(associationWarehouseCacheDO.getWarehouseId());
+ }
+ }
+ }
+
+ // 入库签名列表固定「已入库」状态过滤
+ if (stockInOrderDO.getStatus() == null) {
+ stockInOrderDO.setStatus(5);
+ }
+
+ List stockInOrderPOS = stockInOrderDomainService.querySignatureList(stockInOrderDO);
+ // 状态/签名字段翻译,便于 PDA 端直接展示
+ for (StockInOrderPO stockInOrderPO : stockInOrderPOS) {
+ // 状态名称
+ Integer status = stockInOrderPO.getStatus();
+ if (status != null) {
+ if (status == 5) {
+ stockInOrderPO.setStatusName("已入库");
+ }
+ }
+ // 签名状态名称
+ Integer signatureStatus = stockInOrderPO.getSignatureStatus();
+ if (signatureStatus != null) {
+ if (signatureStatus == 1) {
+ stockInOrderPO.setSignatureStatusName("待签名");
+ } else if (signatureStatus == 2) {
+ stockInOrderPO.setSignatureStatusName("已签名");
+ }
+ }
+ }
+ return stockInOrderPOS;
+ }
+
+
/**
* 新增入库单
@@ -537,6 +617,11 @@ public class StockInOrderApplicationService {
/**
* 获取入库单详细信息
+ *
+ * 回显入库单基本信息、物料明细以及 PDA入库签名相关字段
+ * (签名状态、签名时间、签名图片、签名备注)。
+ * 与 PDA入库签名列表({@link #querySignatureList(StockInOrderDO)})字段保持一致,
+ * 供 PDA 端「入库签名详情页 - 电子签名/物料明细」两个 tab 数据回显使用。
*/
public StockInOrderPO getInfo(Long inOrderId)
{
@@ -552,6 +637,24 @@ public class StockInOrderApplicationService {
info.setMaterialDetailList(materialDetailList);
}
+ // PDA入库签名 - 签名状态名称翻译(待签名/已签名),便于 PDA 详情页直接展示
+ Integer signatureStatus = info.getSignatureStatus();
+ if (signatureStatus != null) {
+ if (signatureStatus == 1) {
+ info.setSignatureStatusName("待签名");
+ } else if (signatureStatus == 2) {
+ info.setSignatureStatusName("已签名");
+ }
+ }
+
+ // 入库单状态名称翻译
+ Integer status = info.getStatus();
+ if (status != null) {
+ if (status == 5) {
+ info.setStatusName("已入库");
+ }
+ }
+
return info;
}
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/entity/StockInOrder.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/entity/StockInOrder.java
index 79d8b2dd6..db0e43999 100644
--- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/entity/StockInOrder.java
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/entity/StockInOrder.java
@@ -392,4 +392,19 @@ public class StockInOrder extends BaseVOEntity {
@ApiModelProperty("任务下发用户ID")
private String taskIssueUserId;
+
+ // ========== PDA入库签名字段 ==========
+ @ApiModelProperty("签名状态:1-待签名 2-已签名")
+ private Integer signatureStatus;
+
+ @ApiModelProperty("签名时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date signatureTime;
+
+ @ApiModelProperty("签名图片(base64/URL)")
+ private String signaturePic;
+
+ @ApiModelProperty("签名备注")
+ private String signatureRemark;
}
\ No newline at end of file
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/po/StockInOrderPO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/po/StockInOrderPO.java
index ea9facb43..a80ea5acc 100644
--- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/po/StockInOrderPO.java
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/po/StockInOrderPO.java
@@ -453,4 +453,22 @@ public class StockInOrderPO extends BaseVOEntity {
@ApiModelProperty("任务下发用户ID")
private String taskIssueUserId;
+
+ // ========== PDA入库签名字段 ==========
+ @ApiModelProperty("签名状态:1-待签名 2-已签名")
+ private Integer signatureStatus;
+
+ @ApiModelProperty("签名状态名称")
+ private String signatureStatusName;
+
+ @ApiModelProperty("签名时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date signatureTime;
+
+ @ApiModelProperty("签名图片(base64/URL)")
+ private String signaturePic;
+
+ @ApiModelProperty("签名备注")
+ private String signatureRemark;
}
\ No newline at end of file
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/todo/StockInOrderDO.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/todo/StockInOrderDO.java
index 24a41d5ce..0b539d0ce 100644
--- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/todo/StockInOrderDO.java
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/repository/todo/StockInOrderDO.java
@@ -448,4 +448,29 @@ public class StockInOrderDO extends BaseVOEntity {
@ApiModelProperty("任务移除用户ID")
private String removeUserId;
+
+ // ========== PDA入库签名字段 ==========
+ @ApiModelProperty("签名状态:1-待签名 2-已签名")
+ private Integer signatureStatus;
+
+ @ApiModelProperty("签名状态名称")
+ private String signatureStatusName;
+
+ @ApiModelProperty("签名时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date signatureTime;
+
+ @ApiModelProperty("签名图片(base64/URL)")
+ private String signaturePic;
+
+ @ApiModelProperty("签名备注")
+ private String signatureRemark;
+
+ /**
+ * PDA入库签名列表专用:作业任务人员模糊查询字段(与 workUserName LIKE 同义,
+ * 单独提供是为了避免和现有 workUserName(精确/等值)逻辑冲突)。
+ */
+ @ApiModelProperty("作业任务人员模糊查询")
+ private String workUserNameLike;
}
\ No newline at end of file
diff --git a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/service/StockInOrderDomainService.java b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/service/StockInOrderDomainService.java
index 8abce3094..b23d4bbcc 100644
--- a/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/service/StockInOrderDomainService.java
+++ b/mhd_wms/src/main/java/com/mhd/wms/domain/stockInOrder/service/StockInOrderDomainService.java
@@ -115,6 +115,26 @@ public class StockInOrderDomainService {
return stockInOrderService.queryList(stockInOrderDO);
}
+ /**
+ * PDA入库签名列表查询
+ *
+ * 参照简易模式快捷入库列表({@link #queryList(StockInOrderDO)})实现,
+ * 默认查询 status=已入库(5) 的入库单;同时支持「作业任务人员」模糊查询及其他业务字段。
+ *
+ * @param stockInOrderDO 查询条件
+ * @return 入库单列表
+ */
+ public List querySignatureList(StockInOrderDO stockInOrderDO) {
+ // 入库签名列表固定按「已入库」状态过滤
+ if (stockInOrderDO.getStatus() == null) {
+ stockInOrderDO.setStatus(5);
+ }
+ // 委托给 queryList,复用 selectStockInOrderPo1 中现有的查询条件(包括新加的 workUserNameLike、signatureStatus)
+ return stockInOrderService.queryList(stockInOrderDO);
+ }
+
+
+
/**
* 新增入库单
diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockInOrder/StockInOrderDTO.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockInOrder/StockInOrderDTO.java
index b70a0c7a7..ca04d04d2 100644
--- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockInOrder/StockInOrderDTO.java
+++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/dto/stockInOrder/StockInOrderDTO.java
@@ -445,4 +445,24 @@ public class StockInOrderDTO extends StockInOrderBaseDTO {
@ApiModelProperty("任务移除用户ID")
private String removeUserId;
+
+ // ========== PDA入库签名字段 ==========
+ @ApiModelProperty("签名状态:1-待签名 2-已签名")
+ private Integer signatureStatus;
+
+ @ApiModelProperty("签名时间起")
+ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date signatureTimeFrom;
+
+ @ApiModelProperty("签名时间止")
+ @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private Date signatureTimeTo;
+
+ /**
+ * PDA入库签名列表专用:作业任务人员模糊查询字段。
+ */
+ @ApiModelProperty("作业任务人员(模糊查询)")
+ private String workUserNameLike;
}
\ No newline at end of file
diff --git a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockInOrder/StockInOrderApi.java b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockInOrder/StockInOrderApi.java
index 988275c98..f226463f0 100644
--- a/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockInOrder/StockInOrderApi.java
+++ b/mhd_wms/src/main/java/com/mhd/wms/interfaces/facadeApi/stockInOrder/StockInOrderApi.java
@@ -64,6 +64,25 @@ public class StockInOrderApi extends BaseController {
return getDataTable(list);
}
+ /**
+ * PDA入库签名列表查询
+ *
+ * 查询入库单状态「已入库」(status=5) 的入库单列表,
+ * 同时支持「作业任务人员」(workUserName) like 模糊查询,
+ * 参照简易模式快捷入库列表实现。响应中包含签名相关字段(签名状态、签名时间、签名图片、签名备注)。
+ */
+ @ApiOperation("PDA入库签名列表查询")
+ @GetMapping("/signatureList")
+ public TableDataInfo signatureList(StockInOrderDTO stockInOrderDTO) {
+ //转换实体
+ StockInOrderDO stockInOrderDO = stockInOrderAssembler.toDO(stockInOrderDTO);
+ startPage();
+ List list = stockInOrderApplicationService.querySignatureList(stockInOrderDO);
+ return getDataTable(list);
+ }
+
+
+
/**
* 编辑入库单
*/
diff --git a/mhd_wms/src/main/resources/mapper/stockInOrder/StockInOrderMapper.xml b/mhd_wms/src/main/resources/mapper/stockInOrder/StockInOrderMapper.xml
index 7cfb2cdb0..adbc11667 100644
--- a/mhd_wms/src/main/resources/mapper/stockInOrder/StockInOrderMapper.xml
+++ b/mhd_wms/src/main/resources/mapper/stockInOrder/StockInOrderMapper.xml
@@ -105,6 +105,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+
+
+
+
@@ -138,7 +142,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
a."TO", a.CONTACT_PERSON, a.VEHICLE_INFO, a.CONSIGNMENT_NO, a.TEL, a.DRIVER_SIGNATURE, a.FAX, a.DECLARATION_AREA, a.MANUFACTURER,
a.CUSTOMS_BROKER_INFO, a.DELIVERY_ADDRESS, a.ENTRY_EXIT_CUSTOMS, a.ORIGIN_DESTINATION_COUNTRY, a.CARRIER, a.CONTAINER_NO,
a.TRANSPORT_METHOD, a.SUPERVISION_METHOD, a.CUSTOMS_INSPECTION, a.NEED_CUSTOMS_DECLARATION, a.NEED_TRANSPORT,
- a.WAREHOUSE_DATE, a.COMPLETION_TIME, a.ORDER_DATE,a.stock_in_order,a.business_order_no,a.WORK_USER_ID,a.WORK_TASK_RECEIVE_STATUS,a.TASK_ISSUE_USER_ID,a.WORK_USER_NAME
+ a.WAREHOUSE_DATE, a.COMPLETION_TIME, a.ORDER_DATE,a.stock_in_order,a.business_order_no,a.WORK_USER_ID,a.WORK_TASK_RECEIVE_STATUS,a.TASK_ISSUE_USER_ID,a.WORK_USER_NAME,
+ a.SIGNATURE_STATUS, a.SIGNATURE_TIME, a.SIGNATURE_PIC, a.SIGNATURE_REMARK
@@ -356,6 +361,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and a.TASK_ISSUE_USER_ID like concat('%', #{queryUserId}, '%')
+
+
+ and a.WORK_USER_NAME like concat('%', #{workUserNameLike}, '%')
+
+
+
+ and a.SIGNATURE_STATUS = #{signatureStatus}
+
and a."TO" like concat('%', #{to}, '%')