From 29672ba0059612658cc69fe14a2688fbfd74a28c Mon Sep 17 00:00:00 2001 From: wangwei <1610949092@qq.com> Date: Tue, 3 Dec 2024 11:44:40 +0800 Subject: [PATCH] =?UTF-8?q?12/3=20=E5=B7=B2=E5=AE=8C=E6=88=90=E5=8D=95-?= =?UTF-8?q?=E7=A0=81=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/inout/IoCodeController.java | 24 ++++++++++ .../glxp/api/req/inout/FilterCodeRequest.java | 5 +++ .../glxp/api/res/basic/UdiRlSupResponse.java | 1 + .../api/res/inout/VailCodeResultResponse.java | 1 + .../api/service/inout/impl/IoCodeService.java | 44 +++++++++++++++++++ 5 files changed, 75 insertions(+) diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeController.java index 5ca7977f1..8de8267bf 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeController.java @@ -1,20 +1,27 @@ package com.glxp.api.controller.inout; +import cn.hutool.core.thread.ThreadUtil; import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.AuthRuleAnnotation; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.controller.BaseController; import com.glxp.api.entity.inout.IoCodeEntity; +import com.glxp.api.exception.JsonException; import com.glxp.api.req.inout.FilterCodeRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.inout.IoCodeResponse; import com.glxp.api.service.inout.impl.IoCodeService; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.List; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; /** * UDI出入库单据-扫码模块 * author:苏荣彬 @@ -86,4 +93,21 @@ public class IoCodeController extends BaseController { return ResultVOUtils.page(pageInfo); } + @AuthRuleAnnotation("") + @PostMapping("warehouse/inout/checkCode") + public BaseResponse checkCode(@RequestBody FilterCodeRequest filterCodeRequest){ + ExecutorService executor = Executors.newSingleThreadExecutor(); + Future future = executor.submit(() -> ioCodeService.CheckCode(filterCodeRequest)); + BaseResponse response = null; + try { + response = future.get(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + executor.shutdown(); + } + return response; + } + + } diff --git a/src/main/java/com/glxp/api/req/inout/FilterCodeRequest.java b/src/main/java/com/glxp/api/req/inout/FilterCodeRequest.java index eeaedce76..ba87f48c2 100644 --- a/src/main/java/com/glxp/api/req/inout/FilterCodeRequest.java +++ b/src/main/java/com/glxp/api/req/inout/FilterCodeRequest.java @@ -67,4 +67,9 @@ public class FilterCodeRequest extends ListPageRequest { * 单据类型集合 */ List actions; + + /** + * 追溯码集合 + */ + private List codeList; } diff --git a/src/main/java/com/glxp/api/res/basic/UdiRlSupResponse.java b/src/main/java/com/glxp/api/res/basic/UdiRlSupResponse.java index 6b7f853e6..87229f458 100644 --- a/src/main/java/com/glxp/api/res/basic/UdiRlSupResponse.java +++ b/src/main/java/com/glxp/api/res/basic/UdiRlSupResponse.java @@ -143,5 +143,6 @@ public class UdiRlSupResponse { * 明细分类 */ private Integer detailSort; + private String packUnit; } diff --git a/src/main/java/com/glxp/api/res/inout/VailCodeResultResponse.java b/src/main/java/com/glxp/api/res/inout/VailCodeResultResponse.java index 656907273..35c8f99b3 100644 --- a/src/main/java/com/glxp/api/res/inout/VailCodeResultResponse.java +++ b/src/main/java/com/glxp/api/res/inout/VailCodeResultResponse.java @@ -11,6 +11,7 @@ public class VailCodeResultResponse { */ private Integer status; private String errMsg; + private String sucMsg; private String cpmctymc; private String productInfo; private String bizId; diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoCodeService.java b/src/main/java/com/glxp/api/service/inout/impl/IoCodeService.java index 23b11182f..aefc8deed 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoCodeService.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoCodeService.java @@ -1,6 +1,10 @@ package com.glxp.api.service.inout.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.glxp.api.entity.basic.UdiEntity; +import com.glxp.api.res.inout.VailCodeResultResponse; +import com.glxp.api.util.udi.FilterUdiUtils; import org.springframework.beans.BeanUtils; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; @@ -17,6 +21,7 @@ import com.glxp.api.entity.inout.IoOrderEntity; import com.glxp.api.req.inout.FilterCodeRequest; import com.glxp.api.res.inout.IoCodeResponse; import com.glxp.api.res.inout.IoCodeTempResponse; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -159,4 +164,43 @@ public class IoCodeService extends ServiceImpl { } + public BaseResponse CheckCode(FilterCodeRequest filterCodeRequest) { + //判断 + if (StrUtil.isNotEmpty(filterCodeRequest.getCode())){ + IoCodeEntity ioCodeEntity = ioCodeDao.selectOne(new LambdaQueryWrapper() + .eq(IoCodeEntity::getOrderId, filterCodeRequest.getOrderId()) + .eq(IoCodeEntity::getCode, filterCodeRequest.getCode())); + if (ioCodeEntity == null){ + BaseResponse response = new BaseResponse(); + response.setData(filterCodeRequest.getCode()); + response.setCode(500); + response.setMessage("追溯码不存在"); + return response; + } + UdiEntity udiEntity = FilterUdiUtils.getUdi(filterCodeRequest.getCode()); + udiEntity.setCode(filterCodeRequest.getCode()); + return ResultVOUtils.success(udiEntity); + }else { + List vailCodeResultResponses = new ArrayList<>(); + for (String code : filterCodeRequest.getCodeList()){ + IoCodeEntity ioCodeEntity = ioCodeDao.selectOne(new LambdaQueryWrapper() + .eq(IoCodeEntity::getOrderId, filterCodeRequest.getOrderId()) + .eq(IoCodeEntity::getCode, code)); + VailCodeResultResponse vailCodeResultResponse = new VailCodeResultResponse(); + if (ioCodeEntity != null){ + vailCodeResultResponse.setStatus(1); + vailCodeResultResponse.setCode(code); + vailCodeResultResponse.setSucMsg("校验成功"); + vailCodeResultResponses.add(vailCodeResultResponse); + }else { + vailCodeResultResponse.setStatus(2); + vailCodeResultResponse.setCode(code); + vailCodeResultResponse.setErrMsg("追溯码不存在"); + vailCodeResultResponses.add(vailCodeResultResponse); + } + } + return ResultVOUtils.success(vailCodeResultResponses); + } + + } }