From f72a8213921e73aabbbe0985c0ba18b87536a105 Mon Sep 17 00:00:00 2001 From: zane Date: Tue, 8 Oct 2024 18:55:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=B3=E8=81=94=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/req/collect/RelCodeBatchRequest.java | 4 ++ .../res/collect/RelCodeDetailResponse.java | 15 ++++ .../service/collect/RelCodeDetailService.java | 71 +++++++++++++------ .../mapper/collect/RelCodeBatchMapper.xml | 49 +++++++------ 4 files changed, 99 insertions(+), 40 deletions(-) diff --git a/src/main/java/com/glxp/api/req/collect/RelCodeBatchRequest.java b/src/main/java/com/glxp/api/req/collect/RelCodeBatchRequest.java index 51c239487..840665143 100644 --- a/src/main/java/com/glxp/api/req/collect/RelCodeBatchRequest.java +++ b/src/main/java/com/glxp/api/req/collect/RelCodeBatchRequest.java @@ -79,4 +79,8 @@ public class RelCodeBatchRequest extends ListPageRequest { private String keyWords; private List detailList; + + private String code; + private String startDate; + private String endDate; } diff --git a/src/main/java/com/glxp/api/res/collect/RelCodeDetailResponse.java b/src/main/java/com/glxp/api/res/collect/RelCodeDetailResponse.java index 8a8fd4424..4a19dc2ff 100644 --- a/src/main/java/com/glxp/api/res/collect/RelCodeDetailResponse.java +++ b/src/main/java/com/glxp/api/res/collect/RelCodeDetailResponse.java @@ -1,5 +1,6 @@ package com.glxp.api.res.collect; +import com.baomidou.mybatisplus.annotation.TableField; import com.glxp.api.entity.basic.BasicProductsEntity; import lombok.Data; @@ -92,4 +93,18 @@ public class RelCodeDetailResponse { */ private String lineManager; + /** + * 产品名称,通用名称 + */ + private String cpmctymc; + /** + * 包含下级数量 + */ + private Integer bhxjsl; + + /** + * 包装单位 + */ + private String packUnit; + } 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 517904f3b..8772e6156 100644 --- a/src/main/java/com/glxp/api/service/collect/RelCodeDetailService.java +++ b/src/main/java/com/glxp/api/service/collect/RelCodeDetailService.java @@ -5,12 +5,15 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.github.pagehelper.PageHelper; import com.glxp.api.dao.basic.BasicProductsDao; import com.glxp.api.entity.basic.BasicProductsEntity; +import com.glxp.api.entity.basic.UdiEntity; import com.glxp.api.exception.JsonException; import com.glxp.api.req.collect.RelCodeDetailRequest; import com.glxp.api.res.collect.RelCodeDetailResponse; +import com.glxp.api.util.udi.FilterUdiUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Collections; +import java.util.Currency; import java.util.List; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.glxp.api.dao.collect.RelCodeDetailMapper; @@ -22,37 +25,65 @@ public class RelCodeDetailService extends ServiceImpl qw = new LambdaQueryWrapper() - .eq(BasicProductsEntity::getNameCode, relCodeDetailRequest.getParentCode()) + LambdaQueryWrapper cw = new LambdaQueryWrapper() + .eq(BasicProductsEntity::getNameCode, curCodeUdi.getUdi()) .last("limit 1"); - BasicProductsEntity parent = basicProductsDao.selectOne(qw); - if(parent == null){ + BasicProductsEntity cur = basicProductsDao.selectOne(cw); + if(cur == null){ throw new JsonException("产品信息不存在"); } - Integer packLevel = Integer.valueOf(parent.getPackLevel()); - if(packLevel == 1){ - throw new JsonException("产品信息不存在子包装"); + if(StrUtil.isNotBlank(parentCode)){ + if (parentCode.endsWith("\u001D")) { + parentCode = parentCode.replace("\u001D", ""); + } + UdiEntity parentCodeUdi = FilterUdiUtils.getUdi(parentCode); + if (parentCodeUdi == null){ + throw new JsonException("无效父级条码!"); + } + LambdaQueryWrapper pw = new LambdaQueryWrapper() + .eq(BasicProductsEntity::getNameCode, parentCodeUdi.getUdi()) + .last("limit 1"); + BasicProductsEntity parent = basicProductsDao.selectOne(pw); + if(parent == null){ + throw new JsonException("父级产品信息不存在"); + } + if(!StrUtil.equals(parent.getUuid(),cur.getUuid())){ + throw new JsonException("当前条码不是同一产品"); + } + if(Integer.valueOf(parent.getPackLevel()) - Integer.valueOf(cur.getPackLevel()) != 1){ + throw new JsonException("当前条码不属于子条码"); + } + }else { + parentCode = "0"; } - //todo 可能存在多个子集 如何处理 - LambdaQueryWrapper qw2 = new LambdaQueryWrapper() - .eq(BasicProductsEntity::getUuid, parent.getUuid()) - .eq(BasicProductsEntity::getPackLevel,packLevel - 1) - .last("limit 1"); - BasicProductsEntity subset = basicProductsDao.selectOne(qw2); - relCodeDetailResponse.setCurCode(subset.getNameCode()); - relCodeDetailResponse.setPackLayer(Integer.valueOf(subset.getPackLevel())); - relCodeDetailResponse.setParentCode(parent.getNameCode()); - relCodeDetailResponse.setFlag(Integer.valueOf(subset.getMajorStatus())); + relCodeDetailResponse.setCurCode(curCode); + relCodeDetailResponse.setParentCode(parentCode); + relCodeDetailResponse.setPackLayer(Integer.valueOf(cur.getPackLevel())); + relCodeDetailResponse.setFlag(Integer.valueOf(cur.getMajorStatus())); + relCodeDetailResponse.setCpmctymc(cur.getCpmctymc()); + relCodeDetailResponse.setProductCode(cur.getNameCode()); + relCodeDetailResponse.setBhxjsl(cur.getBhxjsl()); + relCodeDetailResponse.setPackageSpec(cur.getBzgg()); + relCodeDetailResponse.setCascadeRatio(cur.getPackRatio()); + relCodeDetailResponse.setPackUnit(cur.getPackUnit()); return relCodeDetailResponse; } diff --git a/src/main/resources/mybatis/mapper/collect/RelCodeBatchMapper.xml b/src/main/resources/mybatis/mapper/collect/RelCodeBatchMapper.xml index ee69dbe2b..3ac701fce 100644 --- a/src/main/resources/mybatis/mapper/collect/RelCodeBatchMapper.xml +++ b/src/main/resources/mybatis/mapper/collect/RelCodeBatchMapper.xml @@ -25,37 +25,46 @@