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,85 @@
package com.mhd.wms.interfaces.facadeApi.stockSignature;
import com.mhd.common.core.web.controller.BaseController;
import com.mhd.common.core.web.domain.AjaxResult;
import com.mhd.system.api.domain.SignatureBatchFeignDTO;
import com.mhd.wms.application.service.stockInOrder.StockInOrderApplicationService;
import com.mhd.wms.application.service.stockOutOrder.StockOutOrderApplicationService;
import com.mhd.wms.interfaces.dto.signature.BatchSignatureDTO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 库存签名API(供OMS端Feign调用,统一更新WMS入/出库单签名字段)
*
* <p>OMS端批量签名后,通过Feign调用此API,
* 更新WMS stock_in_order / stock_out_order 表的签名状态、签名时间、签名图片、签名备注。</p>
*/
@Slf4j
@RestController
@RequestMapping("/stockSignatureApi")
@Api(tags = "库存签名(OMS→WMS")
public class StockSignatureApi extends BaseController {
@Autowired
private StockInOrderApplicationService stockInOrderApplicationService;
@Autowired
private StockOutOrderApplicationService stockOutOrderApplicationService;
/**
* 批量签名(OMS→WMS
*
* <p>接收SignatureBatchFeignDTO,映射为BatchSignatureDTO后,分别调用
* StockInOrderApplicationService.batchSignature 和
* StockOutOrderApplicationService.batchSignature。</p>
*/
@ApiOperation("OMS批量签名-更新WMS入/出库单签名字段")
@PostMapping("/batchSign")
public AjaxResult batchSign(@RequestBody SignatureBatchFeignDTO dto) {
if (dto == null) {
return AjaxResult.error("请求参数不能为空");
}
boolean hasIn = dto.getInOrderIds() != null && !dto.getInOrderIds().isEmpty();
boolean hasOut = dto.getOutOrderIds() != null && !dto.getOutOrderIds().isEmpty();
if (!hasIn && !hasOut) {
return AjaxResult.error("请指定入库单ID列表或出库单ID列表");
}
// 映射 SignatureBatchFeignDTO → BatchSignatureDTO
BatchSignatureDTO batchDTO = new BatchSignatureDTO();
batchDTO.setInOrderIds(dto.getInOrderIds());
batchDTO.setOutOrderIds(dto.getOutOrderIds());
batchDTO.setSignatureStatus(dto.getSignatureStatus() != null ? dto.getSignatureStatus() : 2);
batchDTO.setSignatureTime(dto.getSignatureTime());
batchDTO.setSignaturePic(dto.getSignaturePic());
batchDTO.setSignatureRemark(dto.getSignatureRemark());
// evidencePics: Feign DTO中是comma-separated String → List<String>
if (dto.getEvidencePics() != null && !dto.getEvidencePics().isEmpty()) {
batchDTO.setEvidencePics(java.util.Arrays.asList(dto.getEvidencePics().split(",")));
}
String msg = "";
if (hasIn) {
AjaxResult inResult = stockInOrderApplicationService.batchSignature(batchDTO);
log.info("OMS→WMS批量入库签名完成:{}条,结果:{}", dto.getInOrderIds().size(),
inResult != null ? inResult.get("msg") : "OK");
msg += "入库签名完成";
}
if (hasOut) {
AjaxResult outResult = stockOutOrderApplicationService.batchSignature(batchDTO);
log.info("OMS→WMS批量出库签名完成:{}条,结果:{}", dto.getOutOrderIds().size(),
outResult != null ? outResult.get("msg") : "OK");
if (!msg.isEmpty()) msg += "";
msg += "出库签名完成";
}
return AjaxResult.success(msg);
}
}