You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
udi-wms-java/src/main/java/com/glxp/api/service/collect/RelCodeDetailService.java

76 lines
3.2 KiB
Java

package com.glxp.api.service.collect;
9 months ago
import cn.hutool.core.util.StrUtil;
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.exception.JsonException;
import com.glxp.api.req.collect.RelCodeDetailRequest;
import com.glxp.api.res.collect.RelCodeDetailResponse;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
9 months ago
import java.util.Collections;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.dao.collect.RelCodeDetailMapper;
import com.glxp.api.entity.collect.RelCodeDetail;
@Service
public class RelCodeDetailService extends ServiceImpl<RelCodeDetailMapper, RelCodeDetail> {
9 months ago
@Resource
private BasicProductsDao basicProductsDao;
/**
*
* @param relCodeDetailRequest
* @return
*/
public RelCodeDetailResponse scanCode(RelCodeDetailRequest relCodeDetailRequest) {
String parentCode = relCodeDetailRequest.getParentCode();
if(StrUtil.isBlank(parentCode)){
throw new JsonException("父级码不能为空");
}
RelCodeDetailResponse relCodeDetailResponse = new RelCodeDetailResponse();
LambdaQueryWrapper<BasicProductsEntity> qw = new LambdaQueryWrapper<BasicProductsEntity>()
.eq(BasicProductsEntity::getNameCode, relCodeDetailRequest.getParentCode())
.last("limit 1");
9 months ago
BasicProductsEntity parent = basicProductsDao.selectOne(qw);
if(parent == null){
throw new JsonException("产品信息不存在");
9 months ago
}
9 months ago
Integer packLevel = Integer.valueOf(parent.getPackLevel());
if(packLevel == 1){
throw new JsonException("产品信息不存在子包装");
}
//todo 可能存在多个子集 如何处理
LambdaQueryWrapper<BasicProductsEntity> qw2 = new LambdaQueryWrapper<BasicProductsEntity>()
.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()));
9 months ago
return relCodeDetailResponse;
}
/**
*
* @param relCodeDetailRequest
* @return
*/
public List<RelCodeDetailResponse> filterList(RelCodeDetailRequest relCodeDetailRequest) {
if (relCodeDetailRequest == null) {
return Collections.emptyList();
}
if (relCodeDetailRequest.getPage() != null) {
int offset = (relCodeDetailRequest.getPage() - 1) * relCodeDetailRequest.getLimit();
PageHelper.offsetPage(offset, relCodeDetailRequest.getLimit());
}
return this.baseMapper.filterList(relCodeDetailRequest);
}
}