From 2fcd97552d16718cc7997629fd637a73a5a4483f Mon Sep 17 00:00:00 2001 From: 郑永安 <zyazyz250@sina.com> Date: 星期一, 19 六月 2023 14:44:19 +0800 Subject: [PATCH] 删除 --- src/main/java/com/gk/firework/Service/ServiceImpl/ProductLocusServiceImpl.java | 130 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 130 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/gk/firework/Service/ServiceImpl/ProductLocusServiceImpl.java b/src/main/java/com/gk/firework/Service/ServiceImpl/ProductLocusServiceImpl.java new file mode 100644 index 0000000..0db7360 --- /dev/null +++ b/src/main/java/com/gk/firework/Service/ServiceImpl/ProductLocusServiceImpl.java @@ -0,0 +1,130 @@ +package com.gk.firework.Service.ServiceImpl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gk.firework.Config.DataSource.MybatisPlusConfig; +import com.gk.firework.Domain.Exception.BusinessException; +import com.gk.firework.Domain.ProductLocusInfo; +import com.gk.firework.Domain.Utils.StringUtils; +import com.gk.firework.Domain.Vo.DirectionDetail; +import com.gk.firework.Domain.Vo.FireworkDeal; +import com.gk.firework.Domain.Vo.ProductLocusVo; +import com.gk.firework.Domain.Vo.ProductVo; +import com.gk.firework.Mapper.ProductLocusInfoMapper; +import com.gk.firework.Service.ProductLocusService; +import com.gk.firework.Service.ProductService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author : jingjy + * @date : 2021/3/24 14:34 + */ +@Service("ProductLocusService") +public class ProductLocusServiceImpl extends ServiceImpl<ProductLocusInfoMapper, ProductLocusInfo> implements ProductLocusService { + @Autowired + private ProductService productService; + @Autowired + private ProductLocusInfoMapper productLocusInfoMapper; + + @Override + public int insertProductLocus(ProductLocusInfo productLocusInfo) { + int i = 0; + if (productLocusInfo == null){ + return i; + } + String slice = productService.getSlice(productLocusInfo.getDirectioncode()); + i = productLocusInfoMapper.insertProductLocus(productLocusInfo, slice); + return i; + } + + @Override + public int insertBatch(List<ProductLocusInfo> productLocusInfos) { + int i = 0; + if (productLocusInfos == null || productLocusInfos.size() == 0){ + return i; + } + for (ProductLocusInfo productLocusInfo : productLocusInfos){ + i = insertProductLocus(productLocusInfo); + } + return i; + } + + /** + * @Description: 条码流向查询 + * @date 2021/4/14 16:01 + */ + @Override + public List<ProductLocusVo> getFlow(String directionCode) { + + ArrayList<ProductLocusVo> result = new ArrayList<>(); + //判空和长度判断 + if (StringUtils.isBlank(directionCode)) throw new BusinessException("流向码不能为空"); + if (FireworkDeal.isNotDirectionCode(directionCode)) throw new BusinessException("流向码非法"); + //根据创建时间倒叙排序 + DirectionDetail directionDetail = FireworkDeal.dealDirectionCode(directionCode); + List<ProductVo> productVos = new ArrayList<>(); + ProductVo productVo = productService.selectVoByDirection(directionCode); + if (productVo == null) throw new BusinessException("产品不存在"); + String slice = productService.getSlice(directionCode); + //22位码 + if (FireworkDeal.is22Characters(directionCode)){ + FireworkDeal.getProductVos(directionCode,directionDetail,directionDetail,productVos,productVo); + if (productVos.size() < 1) throw new BusinessException("产品流向码出现问题"); + List<String> codes= new ArrayList<>(); + for (ProductVo product : productVos) { + codes.add(product.getDirectionCode()); + } + //22位查询 + List<ProductLocusVo> flow_22 = productLocusInfoMapper.selectLists(directionCode, slice); + if (flow_22.size() < 1) throw new BusinessException("查询结果不存在"); + result.addAll(flow_22); + //19位查询 + List<ProductLocusVo> flow_19 = productLocusInfoMapper.selectFlowByCodes(codes, slice); + assert flow_19.size() > 0; + result.addAll(flow_19); + }else{ + //19位查询 + List<ProductLocusVo> flow_19 = productLocusInfoMapper.selectLists(directionCode,slice); + //19找22位箱 + Integer boxNumber = productVo.getBoxNumber(); + String serialNo = directionDetail.getSerialNo(); + Integer serial = Integer.parseInt(serialNo); + int left_open_interval = serial - boxNumber; + int right_close_interval = serial; + List<String> codes = new ArrayList<>(); + for (int i = left_open_interval + 1; i <= right_close_interval; i++) { + int abs = Math.abs(i); + String itemCode = directionDetail.getItemCode(); + String dateCode = directionDetail.getDateCode(); + String serials = String.format("%05d", abs); + String boxNumberCode = String.format("%03d", boxNumber); + String code = String.format("%s%s%s%s", itemCode, dateCode, serials, boxNumberCode); + codes.add(code); + } + List<ProductLocusVo> flow_22 = productLocusInfoMapper.selectFlowByCodes(codes,slice); + assert flow_22.size() > 0; + result.addAll(flow_22); + result.addAll(flow_19); + } + + if (result.size() >0 ) + return result.stream().sorted(Comparator.comparing(ProductLocusVo::getCreateddate).reversed()).collect(Collectors.toList()); + + return result; + } + + @Override + public int saveBatchLocus(List<ProductLocusInfo> productLocuses) { + if (productLocuses == null || productLocuses.size() == 0) { + throw new BusinessException("系统入参为空"); + } + return productLocusInfoMapper.insertBatch(productLocuses); + } +} -- Gitblit v1.9.2