diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java index 97a9637bf..18d988e43 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -129,6 +129,7 @@ public class IoCodeTempController extends BaseController { @Resource IoCollectOrderBackupService ioCollectOrderBackupService; + /** * PDA-----单据上传 */ @@ -2836,14 +2837,27 @@ public class IoCodeTempController extends BaseController { } }); - addOrderCodeRequest.setCodeList(codeList); + List codeOnelist = new ArrayList(); + // 检查该码的所有一级码并且加入进去 + for (String code : codeList) { + List list = relCodeDetailService.getAllNextOne(code); + if(list!=null && list.size() >0){ + for (RelCodeDetail relCodeDetail : list) { + codeOnelist.add(relCodeDetail.getCurCode()); + } + }else { + codeOnelist.add(code); + } + } + + addOrderCodeRequest.setCodeList(codeOnelist); addOrderCodeRequest.setCorpOrderId(orderFinishBillNo); AddCodeResult addCodeResult = new AddCodeResult(); - if (CollUtil.isEmpty(codeList)) + if (CollUtil.isEmpty(codeOnelist)) return ResultVOUtils.error(500, "追溯码不能为空"); List vailCodeResultResponses = new ArrayList<>(); - for (String code : codeList) { + for (String code : codeOnelist) { VailCodeResultResponse vailCodeResultResponse = new VailCodeResultResponse(); AddOrderRequest addOrderRequest = new AddOrderRequest(); BeanUtils.copyProperties(addOrderCodeRequest, addOrderRequest); diff --git a/src/main/java/com/glxp/api/service/collect/RelCodeDetailService.java b/src/main/java/com/glxp/api/service/collect/RelCodeDetailService.java index 89ab04da9..3e2f74c84 100644 --- a/src/main/java/com/glxp/api/service/collect/RelCodeDetailService.java +++ b/src/main/java/com/glxp/api/service/collect/RelCodeDetailService.java @@ -173,6 +173,30 @@ public class RelCodeDetailService extends ServiceImpl list) { + List relCodeDetails = this.baseMapper.selectList( + new LambdaQueryWrapper().eq(RelCodeDetail::getParentCode, code)); + + if (CollUtil.isNotEmpty(relCodeDetails)) { + Integer packLayer = relCodeDetails.get(0).getPackLayer(); + if(packLayer == 1){ + list.addAll(relCodeDetails); + } + for (RelCodeDetail relCodeDetail : relCodeDetails) { + fetchAllChildrenOne(relCodeDetail.getCurCode(), list); + } + } + } + /** + * 获取下级所有一级码 + * + * @return + */ + public List getAllNextOne(String code) { + List list = new ArrayList<>(); + fetchAllChildrenOne(code, list); + return list; + } }