package com.glxp.api.service.collect; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.glxp.api.dao.basic.BasicProductsDao; import com.glxp.api.dao.collect.IoCollectOrderBizMapper; import com.glxp.api.entity.basic.BasicProductsEntity; import com.glxp.api.entity.basic.UdiProductEntity; import com.glxp.api.entity.collect.IoCollectOrderBiz; import com.glxp.api.req.collect.CollectOrderBizRequest; import com.glxp.api.res.collect.CollectOrderBizResponse; import com.glxp.api.service.basic.UdiProductService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Collections; import java.util.List; @Service public class IoCollectOrderBizService extends ServiceImpl { @Resource IoCollectOrderBizMapper collectOrderBizMapper; @Resource private BasicProductsDao basicProductsDao; public List filterList(CollectOrderBizRequest collectOrderRequest) { if (collectOrderRequest == null) { return Collections.emptyList(); } if (collectOrderRequest.getPage() != null) { int offset = (collectOrderRequest.getPage() - 1) * collectOrderRequest.getLimit(); PageHelper.offsetPage(offset, collectOrderRequest.getLimit()); } List data = collectOrderBizMapper.filterList(collectOrderRequest); if (collectOrderRequest.getIsOrderCheck() == null){ for (CollectOrderBizResponse collectOrderBizResponse : data){ collectOrderBizResponse.setProductLocation(setProductName(collectOrderBizResponse)); } } //设置 应该扫码数量 shouldCount if (data.size() > 0){ for (CollectOrderBizResponse collectOrderBizResponse : data){ List productList = basicProductsDao.selectList( new LambdaQueryWrapper() .eq(BasicProductsEntity::getYbbm, collectOrderBizResponse.getYbbm()) .eq(BasicProductsEntity::getPackLevel, "1")); BasicProductsEntity product = productList.get(0); Integer myBhxjsl = product.getBhxjsl(); Integer shouldCount = 0; double quotient = (double)collectOrderBizResponse.getCount() / myBhxjsl; int integerPart = (int) quotient; if (quotient == integerPart) { if (integerPart == 0){ if (collectOrderBizResponse.getAutoTagStatus() != 2){ shouldCount = 1; } } else { shouldCount = integerPart; } } else { if (collectOrderBizResponse.getAutoTagStatus() == 2){ shouldCount = 0; }else { shouldCount = integerPart + 1; } } collectOrderBizResponse.setShouldCount(shouldCount); if (collectOrderBizResponse.getScanCount() == null){ collectOrderBizResponse.setScanCount(0); } if (collectOrderBizResponse.getScanActCount() == null){ collectOrderBizResponse.setScanActCount(0); } } } return data; } public String setProductName(CollectOrderBizResponse collectOrderBizResponse){ if (StrUtil.isEmpty(collectOrderBizResponse.getWorkplaceQueueCode())){ //todo 暂时解决办法 return ""; } String[] parts = collectOrderBizResponse.getWorkplaceQueueCode().split("-"); String shelf = ""; String layer = ""; // 检查分割后的数组长度是否符合预期 if (parts.length == 3) { // 分别赋值给对应的变量 shelf = parts[0]; // 货架 layer = parts[1]; // 层 } StringBuilder sb = new StringBuilder(); if (collectOrderBizResponse.getRegionName() != null && !collectOrderBizResponse.getRegionName().isEmpty()) { sb.append(collectOrderBizResponse.getRegionName()); } if (collectOrderBizResponse.getFreightName() != null && !collectOrderBizResponse.getFreightName().isEmpty()) { if (sb.length() > 0) { sb.append("-"); } sb.append(collectOrderBizResponse.getFreightName()); } if (layer != null && !layer.isEmpty()) { if (sb.length() > 0) { sb.append("-"); } sb.append(layer + "层"); } return sb.toString(); } public List listByBillNo(String billNo) { List list = super.list(Wrappers.lambdaQuery(IoCollectOrderBiz.class) .eq(IoCollectOrderBiz::getOrderIdFk, billNo) ); return list; } public Boolean removeByBillNo(String billNo) { return remove(new LambdaQueryWrapper().eq(IoCollectOrderBiz::getOrderIdFk, billNo)); } public Boolean insertOrUpdate(IoCollectOrderBiz collectOrderBiz) { return collectOrderBizMapper.insertOrUpdate(collectOrderBiz); } }