pda签名;
This commit is contained in:
+9
@@ -91,6 +91,15 @@ public interface ElectronicSignatureMapper extends BaseMapper<ElectronicSignatur
|
|||||||
List<ElectronicSignature> selectBySignatureIds(@Param("signatureIds") List<Long> signatureIds);
|
List<ElectronicSignature> selectBySignatureIds(@Param("signatureIds") List<Long> signatureIds);
|
||||||
|
|
||||||
|
|
||||||
|
@Select("<script>"
|
||||||
|
+ "SELECT * FROM NGWL_TEST_OMS.ELECTRONIC_SIGNATURE "
|
||||||
|
+ "WHERE ORDER_ID IN "
|
||||||
|
+ "<foreach collection='signatureIds' item='id' open='(' separator=',' close=')'>#{id}</foreach>"
|
||||||
|
+ " AND DEL_FLAG = 1"
|
||||||
|
+ "</script>")
|
||||||
|
List<ElectronicSignature> selectByOrderIds(@Param("signatureIds") List<Long> signatureIds);
|
||||||
|
|
||||||
|
|
||||||
@Update("UPDATE NGWL_TEST_WMS.STOCK_IN_ORDER SET SIGNATURE_STATUS = 2,SIGNATURE_TIME =now() WHERE IN_ORDER_ID = #{id}")
|
@Update("UPDATE NGWL_TEST_WMS.STOCK_IN_ORDER SET SIGNATURE_STATUS = 2,SIGNATURE_TIME =now() WHERE IN_ORDER_ID = #{id}")
|
||||||
int updateIn( @Param("id") Long id);
|
int updateIn( @Param("id") Long id);
|
||||||
|
|
||||||
|
|||||||
+66
@@ -228,4 +228,70 @@ public class ElectronicSignatureDomainService {
|
|||||||
|
|
||||||
return updated;
|
return updated;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public int batchSignByWmsId(ElectronicSignatureBatchSignDTO dto) {
|
||||||
|
List<Long> signatureIds = dto.getSignatureIds();
|
||||||
|
if (CollectionUtil.isEmpty(signatureIds)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 1. 查询签名记录,获取 orderId + orderType
|
||||||
|
List<ElectronicSignature> signatureList = electronicSignatureMapper.selectByOrderIds(signatureIds);
|
||||||
|
if (CollectionUtil.isEmpty(signatureList)) {
|
||||||
|
log.warn("批量签名失败:未找到有效的签名记录");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. 更新OMS电子签名表
|
||||||
|
Date now = new Date();
|
||||||
|
String evidencePicsStr = null;
|
||||||
|
if (CollectionUtil.isNotEmpty(dto.getEvidencePics())) {
|
||||||
|
evidencePicsStr = String.join(",", dto.getEvidencePics());
|
||||||
|
}
|
||||||
|
|
||||||
|
int updated = electronicSignatureMapper.batchUpdateSign(
|
||||||
|
signatureIds, now,
|
||||||
|
dto.getSignaturePic(),
|
||||||
|
evidencePicsStr,
|
||||||
|
dto.getSignatureRemark(),
|
||||||
|
dto.getSignatureMode());
|
||||||
|
log.info("批量签名:OMS电子签名表更新 {} 条", updated);
|
||||||
|
|
||||||
|
// 3. 按订单类型分组,调用WMS更新入/出库表
|
||||||
|
if (wmsServiceFeign != null) {
|
||||||
|
try {
|
||||||
|
// 分组:IN-入库、OUT-出库
|
||||||
|
List<Long> inOrderIds = signatureList.stream()
|
||||||
|
.filter(s -> "IN".equals(s.getOrderType()))
|
||||||
|
.map(ElectronicSignature::getOrderId)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
List<Long> outOrderIds = signatureList.stream()
|
||||||
|
.filter(s -> "OUT".equals(s.getOrderType()))
|
||||||
|
.map(ElectronicSignature::getOrderId)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 构建 WMS 批量签名 DTO(一次调用同时处理入库+出库)
|
||||||
|
SignatureBatchFeignDTO wmsDto = new SignatureBatchFeignDTO();
|
||||||
|
wmsDto.setInOrderIds(inOrderIds.isEmpty() ? null : inOrderIds);
|
||||||
|
wmsDto.setOutOrderIds(outOrderIds.isEmpty() ? null : outOrderIds);
|
||||||
|
wmsDto.setSignatureStatus(2);
|
||||||
|
wmsDto.setSignatureTime(now);
|
||||||
|
wmsDto.setSignaturePic(dto.getSignaturePic());
|
||||||
|
wmsDto.setEvidencePics(evidencePicsStr);
|
||||||
|
wmsDto.setSignatureRemark(dto.getSignatureRemark());
|
||||||
|
|
||||||
|
log.info("批量签名:调用WMS更新入/出库单,入库{}条,出库{}条",
|
||||||
|
inOrderIds.size(), outOrderIds.size());
|
||||||
|
wmsServiceFeign.batchSignWms(wmsDto);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("批量签名:调用WMS更新入/出库表失败", e);
|
||||||
|
// WMS更新失败不影响OMS表更新结果,仅记录日志
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return updated;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+20
@@ -156,6 +156,26 @@ public class ElectronicSignatureApi extends BaseController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ApiOperation("批量签名(勾选记录后批量更新签名状态为已签名)")
|
||||||
|
@PostMapping("/batchSignByWmsId")
|
||||||
|
public AjaxResult batchSignByWmsId(@RequestBody ElectronicSignatureBatchSignDTO dto) {
|
||||||
|
if (dto.getSignatureIds() == null || dto.getSignatureIds().isEmpty()) {
|
||||||
|
return AjaxResult.error("请选择需要签名的记录");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
int count = electronicSignatureDomainService.batchSignByWmsId(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) {
|
private ElectronicSignatureDO toDO(ElectronicSignatureSaveDTO dto) {
|
||||||
ElectronicSignatureDO signatureDO = new ElectronicSignatureDO();
|
ElectronicSignatureDO signatureDO = new ElectronicSignatureDO();
|
||||||
BeanUtils.copyProperties(dto, signatureDO, "materialDetailList");
|
BeanUtils.copyProperties(dto, signatureDO, "materialDetailList");
|
||||||
|
|||||||
Reference in New Issue
Block a user