From 399e7d565f19f59a8da82277da8f3eab527c2c56 Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期二, 09 九月 2025 19:40:20 +0800 Subject: [PATCH] art: 上料接口,上下料查询接口 --- src/main/java/org/jeecg/modules/lsw/controller/LswMaterialController.java | 72 +++++++++++++++++++++++++++++++++++ 1 files changed, 71 insertions(+), 1 deletions(-) diff --git a/src/main/java/org/jeecg/modules/lsw/controller/LswMaterialController.java b/src/main/java/org/jeecg/modules/lsw/controller/LswMaterialController.java index 5eac9ed..0f3664f 100644 --- a/src/main/java/org/jeecg/modules/lsw/controller/LswMaterialController.java +++ b/src/main/java/org/jeecg/modules/lsw/controller/LswMaterialController.java @@ -8,6 +8,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.constant.CommonConstant; @@ -19,10 +20,14 @@ import org.jeecg.modules.lsw.entity.LswMaterial; import org.jeecg.modules.lsw.enums.MaterialCategoryEnum; import org.jeecg.modules.lsw.service.ILswMaterialService; +import org.jeecg.modules.lsw.vo.MaterialScanResultVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.util.Arrays; +import java.util.Collections; import java.util.List; /** @@ -167,12 +172,77 @@ @ApiOperation(value = "绾胯竟搴撶墿鏂欎俊鎭�-鏍规嵁鐗╂枡绫诲瀷鏌ヨ", notes = "绾胯竟搴撶墿鏂欎俊鎭�-鏍规嵁鐗╂枡绫诲瀷鏌ヨ") @GetMapping(value = "/queryByMaterialCategory") public Result<List<LswMaterial>> queryByMaterialCategory(@RequestParam("materialCategory") String materialCategory) { + if (StringUtils.isBlank(materialCategory)) { + return Result.ok(Collections.emptyList()); + } + String[] split = materialCategory.split(","); LambdaQueryWrapper<LswMaterial> queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(LswMaterial::getMaterialCategory, materialCategory); + queryWrapper.in(LswMaterial::getMaterialCategory, Arrays.asList(split)); queryWrapper.eq(LswMaterial::getDelFlag, CommonConstant.DEL_FLAG_0); queryWrapper.eq(LswMaterial::getMaterialStatus, CommonConstant.STATUS_1); queryWrapper.orderByAsc(LswMaterial::getMaterialNumber); List<LswMaterial> lswMaterialList = lswMaterialService.list(queryWrapper); return Result.ok(lswMaterialList); } + + @ApiOperation(value = "绾胯竟搴撶墿鏂欎俊鎭�-鎵爜", notes = "绾胯竟搴撶墿鏂欎俊鎭�-鎵爜") + @GetMapping(value = "/scan") + public Result<?> scan(@RequestParam("qrCode") String qrCode) { + if (StringUtils.isBlank(qrCode)) { + return Result.error("鎵爜淇℃伅涓虹┖锛�"); + } + MaterialScanResultVO result = parseQrCode(qrCode); + //鏌ヨ鐗╂枡鏁版嵁 + LswMaterial material = lswMaterialService.queryByMaterialNumber(result.getMaterialNumber()); + if(material == null) { + return Result.error("鏍规嵁鐗╂枡缂栧彿鏈煡璇㈠埌鐗╂枡锛�"); + } + result.setMaterialName(material.getMaterialName()); + result.setMaterialCategory(material.getMaterialCategory()); + return Result.OK(result); + } + + /** + * 瑙f瀽浜岀淮鐮佸瓧绗︿覆 + * @param qrCode + * @return + */ + private static MaterialScanResultVO parseQrCode(String qrCode) { + MaterialScanResultVO vo = new MaterialScanResultVO(); + String[] split = qrCode.split("#"); + for (String str : split) { + if (StringUtils.isBlank(str)) { + //涓嶇鍚堣鍒� + continue; + } + String[] pairs = str.split("="); + if (pairs.length != 2) { + //涓嶇鍚堣鍒� + continue; + } + String key = pairs[0]; + String value = pairs[1]; + switch (key) { + case "FactoryCode": + vo.setFactoryCode(value); + break; + case "SkuCode": + vo.setMaterialNumber(value); + break; + case "Quantity": + vo.setQuantity(new BigDecimal(value)); + break; + case "TrackLot": + case "ProductionTracklot": + case "SupplierTrackLot": + vo.setBatchNumber(value); + break; + case "Section": + vo.setSection(value); + break; + } + } + return vo; + } + } -- Gitblit v1.9.3