OMS批量签名

This commit is contained in:
秦鸿展
2026-07-29 14:29:56 +08:00
parent f660c66027
commit c852ef1b8b
7 changed files with 314 additions and 0 deletions
@@ -0,0 +1,30 @@
package com.mhd.oms.interfaces.dto.electronicSignature;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* 电子签名批量签名请求DTO
*
* <p>勾选多条记录后批量签名,更新OMS电子签名表 + 调用WMS更新入/出库单表。</p>
*/
@Data
public class ElectronicSignatureBatchSignDTO {
@ApiModelProperty(value = "签名ID列表", required = true)
private List<Long> signatureIds;
@ApiModelProperty("手写签名图片(base64或URL,单张)")
private String signaturePic;
@ApiModelProperty("拍照取证图片URL列表(多张)")
private List<String> evidencePics;
@ApiModelProperty("签名备注")
private String signatureRemark;
@ApiModelProperty("签名方式:1-电子签名 2-附件上传 3-扫二维码 4-系统自动")
private Integer signatureMode;
}
@@ -8,6 +8,7 @@ import com.mhd.oms.domain.electronicSignature.entity.ElectronicSignature;
import com.mhd.oms.domain.electronicSignature.entity.ElectronicSignatureMaterialDetail;
import com.mhd.oms.domain.electronicSignature.repository.todo.ElectronicSignatureDO;
import com.mhd.oms.domain.electronicSignature.service.ElectronicSignatureDomainService;
import com.mhd.oms.interfaces.dto.electronicSignature.ElectronicSignatureBatchSignDTO;
import com.mhd.oms.interfaces.dto.electronicSignature.ElectronicSignatureQueryDTO;
import com.mhd.oms.interfaces.dto.electronicSignature.ElectronicSignatureSaveDTO;
import com.mhd.oms.interfaces.dto.electronicSignature.ElectronicSignatureVO;
@@ -96,6 +97,35 @@ public class ElectronicSignatureApi extends BaseController {
return AjaxResult.success(vo);
}
/**
* 勾选记录批量签名
*
* <p>前端勾选多条待签名的电子签名记录,传入签名ID列表(signatureIds)、签名图片(signaturePic)、
* 签名备注(signatureRemark)、签名方式(signatureMode),后端:</p>
* <ul>
* <li>更新 OMS ELECTRONIC_SIGNATURE 表:signatureStatus=2(已签名)、signatureTime=当前时间、signaturePic、evidencePics、signatureRemark、signatureMode</li>
* <li>通过 Feign 调用 WMS 更新 stock_in_order / stock_out_order 表的对应签名字段</li>
* </ul>
*/
@ApiOperation("批量签名(勾选记录后批量更新签名状态为已签名)")
@PostMapping("/batchSign")
public AjaxResult batchSign(@RequestBody ElectronicSignatureBatchSignDTO dto) {
if (dto.getSignatureIds() == null || dto.getSignatureIds().isEmpty()) {
return AjaxResult.error("请选择需要签名的记录");
}
try {
int count = electronicSignatureDomainService.batchSign(dto);
if (count > 0) {
return AjaxResult.success("批量签名成功,共更新 " + count + " 条记录");
} else {
return AjaxResult.error("批量签名失败:未找到有效的待签名记录");
}
} catch (Exception e) {
log.error("批量签名失败", e);
return AjaxResult.error("批量签名失败:" + e.getMessage());
}
}
private ElectronicSignatureDO toDO(ElectronicSignatureSaveDTO dto) {
ElectronicSignatureDO signatureDO = new ElectronicSignatureDO();
BeanUtils.copyProperties(dto, signatureDO, "materialDetailList");