From 38ef15632e9e34a5be9ef0d4e7e8c950563bff1a Mon Sep 17 00:00:00 2001 From: wangfukang <15630117759@163.com> Date: Tue, 23 Apr 2024 11:48:55 +0800 Subject: [PATCH] =?UTF-8?q?BUG=E4=BF=AE=E6=94=B9=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ProductCategoryController.java | 6 + .../mall/controller/PurchaseController.java | 9 +- .../hiver/mall/controller/SaleController.java | 42 ++++- .../hiver/mall/dao/mapper/ProductMapper.java | 9 + .../hiver/mall/pojo/query/SalePageQuery.java | 6 + .../mall/service/mybatis/ProductService.java | 9 + .../mall/service/mybatis/SaleService.java | 4 +- .../mybatis/ProductServiceImpl.java | 12 ++ .../serviceimpl/mybatis/SaleServiceImpl.java | 176 ++++++++++-------- .../java/cc/hiver/mall/utils/AliOcrUtil.java | 60 +++--- .../main/resources/mapper/ProductMapper.xml | 6 + .../main/resources/mapper/PurchaseMapper.xml | 2 +- .../src/main/resources/mapper/SaleMapper.xml | 6 + 13 files changed, 230 insertions(+), 117 deletions(-) diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/ProductCategoryController.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/ProductCategoryController.java index 7938bb0a..4b337431 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/ProductCategoryController.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/ProductCategoryController.java @@ -6,6 +6,7 @@ import cc.hiver.core.common.vo.Result; import cc.hiver.mall.entity.ProductCategory; import cc.hiver.mall.pojo.vo.ProductCategoryVo; import cc.hiver.mall.service.mybatis.ProductCategoryService; +import cc.hiver.mall.service.mybatis.ProductService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -30,6 +31,9 @@ public class ProductCategoryController { @Autowired private ProductCategoryService productCategoryService; + @Autowired + private ProductService productService; + @Autowired private SecurityUtil securityUtil; @@ -65,6 +69,8 @@ public class ProductCategoryController { @ApiOperation(value = "根据id删除货品类别") public Result delete(ProductCategory productCategory) { boolean result = productCategoryService.removeById(productCategory); + // 将该分类下的商品id删除掉 + productService.deleteProductByCategoryId(productCategory.getId()); if (result) { return ResultUtil.success("删除成功"); } else { diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/PurchaseController.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/PurchaseController.java index 58ff5059..27f6e6fd 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/PurchaseController.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/PurchaseController.java @@ -92,12 +92,9 @@ public class PurchaseController { public Result delete(Purchase purchase) { final boolean result = purchaseService.removeById(purchase); if (result) { - final QueryWrapper deleteWrapper = new QueryWrapper<>(); - deleteWrapper.eq("purchase_id", purchase.getId()); - final boolean removeBatchByIds = purchaseDetailService.remove(deleteWrapper); - if (removeBatchByIds) { - return ResultUtil.success("删除成功"); - } + // 删除采购单明细 + purchaseDetailService.deleteByPurchaseId(purchase.getId()); + return ResultUtil.error("删除成功!"); } return ResultUtil.error("删除失败"); } diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/SaleController.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/SaleController.java index ccc1cc56..c0483dba 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/SaleController.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/SaleController.java @@ -24,6 +24,7 @@ import cc.hiver.mall.service.*; import cc.hiver.mall.service.mybatis.*; import cc.hiver.mall.utils.DateUtil; import cn.hutool.core.text.CharSequenceUtil; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; @@ -806,6 +807,42 @@ public class SaleController { orderXd.setWorker(null); orderXd.setOrderStatus(status); orderService.update(orderXd); + // 库存退回去 + // 封装退货的信息 + List returnDetails = new ArrayList<>(); + final QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.select("product_id") + .eq("sale_id", orderId) + .groupBy("product_id"); + final List list = saleDetailService.selectByCondition1(queryWrapper); + for (String productId : list) { + final QueryWrapper queryPWrapper = new QueryWrapper<>(); + queryPWrapper.eq("sale_id", orderId).eq("product_id", productId); + final List saleDetailList = saleDetailService.list(queryPWrapper); + final List saleDetailQueryDTOS = new ArrayList<>(); + final ReturnSaleDetailDTO returnSaleDetailDTO = new ReturnSaleDetailDTO(); + for (SaleDetail saleDetail : saleDetailList) { + returnSaleDetailDTO.setProductId(productId); + returnSaleDetailDTO.setProductName(saleDetail.getProductName()); + returnSaleDetailDTO.setUnit(saleDetail.getUnit()); + returnSaleDetailDTO.setShopId(sale.getShopId()); + returnSaleDetailDTO.setCategoryId(saleDetail.getCategoryId()); + returnSaleDetailDTO.setSaleId(saleDetail.getSaleId()); + returnSaleDetailDTO.setPrice(saleDetail.getPrice()); + returnSaleDetailDTO.setWholesalePrice(saleDetail.getWholesalePrice()); + returnSaleDetailDTO.setPurchasePrice(saleDetail.getPurchasePrice()); + returnSaleDetailDTO.setDiscount(saleDetail.getDiscount()); + returnSaleDetailDTO.setDiscountAmount(saleDetail.getDiscountAmount()); + returnSaleDetailDTO.setRealPrice(saleDetail.getRealPrice()); + final SaleDetailQueryDTO saleDetailQueryDTO = new SaleDetailQueryDTO(); + saleDetailQueryDTO.setAttributeList(saleDetail.getAttributeList()); + saleDetailQueryDTO.setProductCount(saleDetail.getProductCount()); + saleDetailQueryDTOS.add(saleDetailQueryDTO); + } + returnSaleDetailDTO.setStockLogList1(saleDetailQueryDTOS); + returnDetails.add(returnSaleDetailDTO); + } + stockAndLogService.handleRetIncStockLog(returnDetails); return ResultUtil.success("取消订单成功"); } return ResultUtil.success(); @@ -935,7 +972,8 @@ public class SaleController { if (StringUtils.isEmpty(aiMsg)) { ResultUtil.error("指令不能为空!"); } - final List saleDetailDTOS = saleService.buyAi(aiMsg); - return new ResultUtil>().setData(saleDetailDTOS); + + final JSONObject jsonObject = saleService.buyAi(aiMsg); + return new ResultUtil().setData(jsonObject); } } diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/ProductMapper.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/ProductMapper.java index 3bf0a002..e8381f31 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/ProductMapper.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/ProductMapper.java @@ -54,4 +54,13 @@ public interface ProductMapper extends BaseMapper { CopyOnWriteArrayList getProductByProductSnList(@Param("productSnList") List productSnList, @Param("shopId") String shopId); CopyOnWriteArrayList getProductByProductNameList(@Param("productNameList") List productNameList,@Param("shopId") String shopId); + + /** + * 删除分类时,根据分类id删除商品信息 + * + * @param categoryId 分类id + * @author 王富康 + * @date 2024/4/22 + */ + void deleteProductByCategoryId(@Param("categoryId") String categoryId); } \ No newline at end of file diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/query/SalePageQuery.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/query/SalePageQuery.java index 48e002f5..6e6573aa 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/query/SalePageQuery.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/query/SalePageQuery.java @@ -51,4 +51,10 @@ public class SalePageQuery extends HiverBasePageQuery { @ApiModelProperty("订单状态") private String status; + @ApiModelProperty("开始时间") + private String startDate; + + @ApiModelProperty("结束时间") + private String endDate; + } diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/ProductService.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/ProductService.java index 700122a4..63d14981 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/ProductService.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/ProductService.java @@ -36,4 +36,13 @@ public interface ProductService extends IService { Product getByIdOrBrcode(String id); List getByBarcode(String barcode); + + /** + * 删除分类时,根据分类id删除商品信息 + * + * @param categoryId 分类id + * @author 王富康 + * @date 2024/4/22 + */ + void deleteProductByCategoryId(String categoryId); } diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/SaleService.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/SaleService.java index 01848f85..14620e65 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/SaleService.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/SaleService.java @@ -1,10 +1,10 @@ package cc.hiver.mall.service.mybatis; import cc.hiver.mall.entity.Sale; -import cc.hiver.mall.pojo.dto.SaleDetailDTO; import cc.hiver.mall.pojo.query.SalePageQuery; import cc.hiver.mall.pojo.query.SalesRankingQueryCriteria; import cc.hiver.mall.pojo.vo.*; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; @@ -53,7 +53,7 @@ public interface SaleService extends IService { void buyAiSync(String aiMsg,String saleId); - List buyAi(String aiMsg); + JSONObject buyAi(String aiMsg); void updateAiFlag(String id, Integer status); diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/ProductServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/ProductServiceImpl.java index b2724807..736ae109 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/ProductServiceImpl.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/ProductServiceImpl.java @@ -79,4 +79,16 @@ public class ProductServiceImpl extends ServiceImpl impl final String shopId = securityUtil.getShopId(); return baseMapper.getByBarcode(barcode,shopId); } + + /** + * 删除分类时,根据分类id删除商品信息 + * + * @param categoryId 分类id + * @author 王富康 + * @date 2024/4/22 + */ + @Override + public void deleteProductByCategoryId(String categoryId) { + baseMapper.deleteProductByCategoryId(categoryId); + } } diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/SaleServiceImpl.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/SaleServiceImpl.java index 7cb9fb05..9a394108 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/SaleServiceImpl.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/SaleServiceImpl.java @@ -36,6 +36,7 @@ import org.springframework.util.ObjectUtils; import java.math.BigDecimal; import java.util.*; +import java.util.concurrent.CopyOnWriteArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -493,6 +494,11 @@ public class SaleServiceImpl extends ServiceImpl implements Sa @Override public Page getSaleByCompanyId(SalePageQuery salePageQuery) { final Page page = new Page<>(salePageQuery.getPageNum(), salePageQuery.getPageSize()); + //结束时间-1天 + if(StringUtils.isNotEmpty(salePageQuery.getEndDate())){ + String endDate = DateUtil.addDay(salePageQuery.getEndDate(), 1); + salePageQuery.setEndDate(endDate); + } final Page saleNoWorkerVOPage = saleMapper.getSaleByCompanyId(page, salePageQuery); return saleNoWorkerVOPage; } @@ -554,10 +560,12 @@ public class SaleServiceImpl extends ServiceImpl implements Sa } @Override - public List buyAi(String aiMsg) { + public JSONObject buyAi(String aiMsg) { + JSONObject returnJsonObject = new JSONObject(); // 叉转X 文本纠错 使用正则表达式替换单个或多个连续的“叉”字符 aiMsg = replaceAllX(aiMsg); final List saleDetailDTOS = new ArrayList<>(); + final CopyOnWriteArrayList aiNotRecognitionList = new CopyOnWriteArrayList<>(); // shopId从缓存中设置 final String shopId = securityUtil.getShopId(); try { @@ -595,6 +603,36 @@ public class SaleServiceImpl extends ServiceImpl implements Sa final List saleDetailQueryDTOS = new ArrayList<>(); final String attributeList = object.getString("attributeList"); final JSONArray attributeListJsonArray = JSON.parseArray(attributeList); + // 获取商品分类及规格信息 + final List categoryIdList = new ArrayList<>(); + categoryIdList.add(categoryId); + final List shopCategory = productCategoryService.getShopCategory(categoryIdList); + final ProductCategoryVo productCategoryVo = shopCategory.get(0); + final List productAttributeOfAddVos = productCategoryVo.getProductAttributeOfAddVos(); + final Map productAttributeOfAddVoMap = new HashMap<>(); + for (ProductAttributeOfAddVo productAttributeOfAddVo : productAttributeOfAddVos) { + productAttributeOfAddVoMap.put(productAttributeOfAddVo.getAttributeName(), productAttributeOfAddVo); + } + //获取颜色及规格进行拼接 + List colorProductAttributeValueVoList = new ArrayList<>(); + List sizeProductAttributeValueVoList = new ArrayList<>(); + if (productAttributeOfAddVoMap.containsKey("颜色")) { + colorProductAttributeValueVoList = productAttributeOfAddVoMap.get("颜色").getProductAttributeValueVoList(); + } + // 将所有颜色放到一个集合中 + final CopyOnWriteArrayList colorList = new CopyOnWriteArrayList<>(); + for (ProductAttributeValueVo productAttributeValueVo : colorProductAttributeValueVoList) { + colorList.add(productAttributeValueVo.getValue()); + } + if (productAttributeOfAddVoMap.containsKey("尺码")) { + sizeProductAttributeValueVoList = productAttributeOfAddVoMap.get("尺码").getProductAttributeValueVoList(); + } + // 将所有尺码放到一个集合中 + final CopyOnWriteArrayList sizeList = new CopyOnWriteArrayList<>(); + for (ProductAttributeValueVo productAttributeValueVo : sizeProductAttributeValueVoList) { + sizeList.add(productAttributeValueVo.getValue()); + } + for (int j = 0; j < attributeListJsonArray.size(); j++) { final JSONObject attributeListObject = attributeListJsonArray.getJSONObject(j); String color = attributeListObject.getString("color").toUpperCase(); @@ -610,26 +648,8 @@ public class SaleServiceImpl extends ServiceImpl implements Sa size += '码'; } size = size.toUpperCase(); - // if (color.contains("所有") && size.contains("所有")) { + if ("SYYS色".equals(color) && "SYCM码".equals(size)) { - final List categoryIdList = new ArrayList<>(); - categoryIdList.add(categoryId); - final List shopCategory = productCategoryService.getShopCategory(categoryIdList); - final ProductCategoryVo productCategoryVo = shopCategory.get(0); - final List productAttributeOfAddVos = productCategoryVo.getProductAttributeOfAddVos(); - final Map productAttributeOfAddVoMap = new HashMap<>(); - for (ProductAttributeOfAddVo productAttributeOfAddVo : productAttributeOfAddVos) { - productAttributeOfAddVoMap.put(productAttributeOfAddVo.getAttributeName(), productAttributeOfAddVo); - } - //获取颜色及规格进行拼接 - List colorProductAttributeValueVoList = new ArrayList<>(); - List sizeProductAttributeValueVoList = new ArrayList<>(); - if (productAttributeOfAddVoMap.containsKey("颜色")) { - colorProductAttributeValueVoList = productAttributeOfAddVoMap.get("颜色").getProductAttributeValueVoList(); - } - if (productAttributeOfAddVoMap.containsKey("尺码")) { - sizeProductAttributeValueVoList = productAttributeOfAddVoMap.get("尺码").getProductAttributeValueVoList(); - } for (ProductAttributeValueVo productAttributeValueVo : colorProductAttributeValueVoList) { for (ProductAttributeValueVo attributeValueVo : sizeProductAttributeValueVoList) { final SaleDetailQueryDTO saleDetailQueryDTO = new SaleDetailQueryDTO(); @@ -645,71 +665,75 @@ public class SaleServiceImpl extends ServiceImpl implements Sa // 所有颜色,所有尺码 } if ("SYYS色".equals(color)) { - // 所有颜色,固定尺码 - final List categoryIdList = new ArrayList<>(); - categoryIdList.add(categoryId); - final List shopCategory = productCategoryService.getShopCategory(categoryIdList); - final ProductCategoryVo productCategoryVo = shopCategory.get(0); - final List productAttributeOfAddVos = productCategoryVo.getProductAttributeOfAddVos(); - final Map productAttributeOfAddVoMap = new HashMap<>(); - for (ProductAttributeOfAddVo productAttributeOfAddVo : productAttributeOfAddVos) { - productAttributeOfAddVoMap.put(productAttributeOfAddVo.getAttributeName(), productAttributeOfAddVo); - } - //获取颜色及规格进行拼接 - List colorProductAttributeValueVoList = new ArrayList<>(); - if (productAttributeOfAddVoMap.containsKey("颜色")) { - colorProductAttributeValueVoList = productAttributeOfAddVoMap.get("颜色").getProductAttributeValueVoList(); - } - for (ProductAttributeValueVo productAttributeValueVo : colorProductAttributeValueVoList) { - final SaleDetailQueryDTO saleDetailQueryDTO = new SaleDetailQueryDTO(); - final String attribute = "{\"颜色\":\"" + productAttributeValueVo.getValue() + "\",\"尺码\":\"" + size + "\"}"; - saleDetailQueryDTO.setAttributeList(attribute); - saleDetailQueryDTO.setProductCount(productCount); - saleDetailQueryDTO.setStockCount(stockMap.getOrDefault(attribute, null)); - saleDetailDTO.setProductCount(saleDetailDTO.getProductCount() + productCount); - saleDetailQueryDTOS.add(saleDetailQueryDTO); + if (sizeList.contains(size)) { + // 所有颜色,固定尺码 + for (ProductAttributeValueVo productAttributeValueVo : colorProductAttributeValueVoList) { + final SaleDetailQueryDTO saleDetailQueryDTO = new SaleDetailQueryDTO(); + final String attribute = "{\"颜色\":\"" + productAttributeValueVo.getValue() + "\",\"尺码\":\"" + size + "\"}"; + saleDetailQueryDTO.setAttributeList(attribute); + saleDetailQueryDTO.setProductCount(productCount); + saleDetailQueryDTO.setStockCount(stockMap.getOrDefault(attribute, null)); + saleDetailDTO.setProductCount(saleDetailDTO.getProductCount() + productCount); + saleDetailQueryDTOS.add(saleDetailQueryDTO); + } + } else { + final String msg = "商品:" + product.getProductName() + ",尺码:" + size + ",不存在"; + aiNotRecognitionList.add(msg); } + continue; } if ("SYCM码".equals(size)) { - // 所有尺码,固定颜色 - final List categoryIdList = new ArrayList<>(); - categoryIdList.add(categoryId); - final List shopCategory = productCategoryService.getShopCategory(categoryIdList); - final ProductCategoryVo productCategoryVo = shopCategory.get(0); - final List productAttributeOfAddVos = productCategoryVo.getProductAttributeOfAddVos(); - final Map productAttributeOfAddVoMap = new HashMap<>(); - for (ProductAttributeOfAddVo productAttributeOfAddVo : productAttributeOfAddVos) { - productAttributeOfAddVoMap.put(productAttributeOfAddVo.getAttributeName(), productAttributeOfAddVo); - } - //获取颜色及规格进行拼接 - List sizeProductAttributeValueVoList = new ArrayList<>(); - if (productAttributeOfAddVoMap.containsKey("尺码")) { - sizeProductAttributeValueVoList = productAttributeOfAddVoMap.get("尺码").getProductAttributeValueVoList(); - } - for (ProductAttributeValueVo attributeValueVo : sizeProductAttributeValueVoList) { - final SaleDetailQueryDTO saleDetailQueryDTO = new SaleDetailQueryDTO(); - final String attribute = "{\"颜色\":\"" + color + "\",\"尺码\":\"" + attributeValueVo.getValue() + "\"}"; - saleDetailQueryDTO.setAttributeList(attribute); - saleDetailQueryDTO.setProductCount(productCount); - saleDetailQueryDTO.setStockCount(stockMap.getOrDefault(attribute, null)); - saleDetailDTO.setProductCount(saleDetailDTO.getProductCount() + productCount); - saleDetailQueryDTOS.add(saleDetailQueryDTO); + if (colorList.contains(color)) { + // 所有尺码,固定颜色 + for (ProductAttributeValueVo attributeValueVo : sizeProductAttributeValueVoList) { + final SaleDetailQueryDTO saleDetailQueryDTO = new SaleDetailQueryDTO(); + final String attribute = "{\"颜色\":\"" + color + "\",\"尺码\":\"" + attributeValueVo.getValue() + "\"}"; + saleDetailQueryDTO.setAttributeList(attribute); + saleDetailQueryDTO.setProductCount(productCount); + saleDetailQueryDTO.setStockCount(stockMap.getOrDefault(attribute, null)); + saleDetailDTO.setProductCount(saleDetailDTO.getProductCount() + productCount); + saleDetailQueryDTOS.add(saleDetailQueryDTO); + } + } else { + final String msg = "商品:" + product.getProductName() + ",颜色:" + color + ",不存在"; + aiNotRecognitionList.add(msg); } + continue; } - // 不包含所有按照获取的拼接 - final SaleDetailQueryDTO saleDetailQueryDTO = new SaleDetailQueryDTO(); - final String attribute = "{\"颜色\":\"" + color + "\",\"尺码\":\"" + size + "\"}"; - saleDetailQueryDTO.setAttributeList(attribute); - saleDetailQueryDTO.setProductCount(productCount); - saleDetailQueryDTO.setStockCount(stockMap.getOrDefault(attribute, null)); - saleDetailDTO.setProductCount(saleDetailDTO.getProductCount() + productCount); - saleDetailQueryDTOS.add(saleDetailQueryDTO); + if (colorList.contains(color) && sizeList.contains(size)) { + // 不包含所有按照获取的拼接 + final SaleDetailQueryDTO saleDetailQueryDTO = new SaleDetailQueryDTO(); + final String attribute = "{\"颜色\":\"" + color + "\",\"尺码\":\"" + size + "\"}"; + saleDetailQueryDTO.setAttributeList(attribute); + saleDetailQueryDTO.setProductCount(productCount); + saleDetailQueryDTO.setStockCount(stockMap.getOrDefault(attribute, null)); + saleDetailDTO.setProductCount(saleDetailDTO.getProductCount() + productCount); + saleDetailQueryDTOS.add(saleDetailQueryDTO); + } else { + // 封装颜色和尺码可能不存在的情况封装到返回结果中去 + if (!colorList.contains(color) && !sizeList.contains(size)) { + // 颜色和尺码都不存在 + final String msg = "商品:" + product.getProductName() + ",颜色:" + color + ",尺码:" + size + ",颜色及尺码都不存在"; + aiNotRecognitionList.add(msg); + } else if (!colorList.contains(color)) { + // 颜色不存在 + final String msg = "商品:" + product.getProductName() + ",颜色:" + color + ",不存在"; + aiNotRecognitionList.add(msg); + } else if (!sizeList.contains(size)) { + final String msg = "商品:" + product.getProductName() + ",尺码:" + size + ",不存在"; + aiNotRecognitionList.add(msg); + } + } + } saleDetailDTO.setStockLogList1(saleDetailQueryDTOS); saleDetailDTOS.add(saleDetailDTO); } else { + // 没查到去找下一个 + final String msg = "货号为:" + productSn + "的商品,不存在"; + aiNotRecognitionList.add(msg); // 没查到去找下一个 continue; } @@ -720,7 +744,9 @@ public class SaleServiceImpl extends ServiceImpl implements Sa } catch (InputRequiredException e) { throw new RuntimeException(e); } - return saleDetailDTOS; + returnJsonObject.put("data",saleDetailDTOS); + returnJsonObject.put("aiNotRecognition",String.join(";", aiNotRecognitionList)); + return returnJsonObject; } @Override diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/utils/AliOcrUtil.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/utils/AliOcrUtil.java index fb26c0b9..f2334bbf 100644 --- a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/utils/AliOcrUtil.java +++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/utils/AliOcrUtil.java @@ -453,6 +453,35 @@ public class AliOcrUtil { final String categoryId = product.getCategoryId(); final String attributeList = object.getString("attributeList"); final JSONArray attributeListJsonArray = JSON.parseArray(attributeList); + final CopyOnWriteArrayList categoryIdList = new CopyOnWriteArrayList<>(); + categoryIdList.add(categoryId); + // 查询该店铺该分类下所有的颜色和尺码,进行对比,有则新增,无,则提醒用户无该规格 + final CopyOnWriteArrayList shopCategory = productCategoryService.getShopCategory(categoryIdList); + final ProductCategoryVo productCategoryVo = shopCategory.get(0); + final CopyOnWriteArrayList productAttributeOfAddVos = productCategoryVo.getProductAttributeOfAddVos(); + final Map productAttributeOfAddVoMap = new ConcurrentHashMap<>(); + for (ProductAttributeOfAddVo productAttributeOfAddVo : productAttributeOfAddVos) { + productAttributeOfAddVoMap.put(productAttributeOfAddVo.getAttributeName(), productAttributeOfAddVo); + } + //获取颜色及规格进行拼接 + CopyOnWriteArrayList colorProductAttributeValueVoList = new CopyOnWriteArrayList<>(); + CopyOnWriteArrayList sizeProductAttributeValueVoList = new CopyOnWriteArrayList<>(); + if (productAttributeOfAddVoMap.containsKey("颜色")) { + colorProductAttributeValueVoList = productAttributeOfAddVoMap.get("颜色").getProductAttributeValueVoList(); + } + // 将所有颜色放到一个集合中 + final CopyOnWriteArrayList colorList = new CopyOnWriteArrayList<>(); + for (ProductAttributeValueVo productAttributeValueVo : colorProductAttributeValueVoList) { + colorList.add(productAttributeValueVo.getValue()); + } + if (productAttributeOfAddVoMap.containsKey("尺码")) { + sizeProductAttributeValueVoList = productAttributeOfAddVoMap.get("尺码").getProductAttributeValueVoList(); + } + // 将所有尺码放到一个集合中 + final CopyOnWriteArrayList sizeList = new CopyOnWriteArrayList<>(); + for (ProductAttributeValueVo productAttributeValueVo : sizeProductAttributeValueVoList) { + sizeList.add(productAttributeValueVo.getValue()); + } for (int j = 0; j < attributeListJsonArray.size(); j++) { final JSONObject attributeListObject = attributeListJsonArray.getJSONObject(j); String color = attributeListObject.getString("color").toUpperCase(); @@ -468,38 +497,7 @@ public class AliOcrUtil { size += '码'; } size = size.toUpperCase(); - - final CopyOnWriteArrayList categoryIdList = new CopyOnWriteArrayList<>(); - categoryIdList.add(categoryId); - // 查询该店铺该分类下所有的颜色和尺码,进行对比,有则新增,无,则提醒用户无该规格 - final CopyOnWriteArrayList shopCategory = productCategoryService.getShopCategory(categoryIdList); - final ProductCategoryVo productCategoryVo = shopCategory.get(0); - final CopyOnWriteArrayList productAttributeOfAddVos = productCategoryVo.getProductAttributeOfAddVos(); - final Map productAttributeOfAddVoMap = new ConcurrentHashMap<>(); - for (ProductAttributeOfAddVo productAttributeOfAddVo : productAttributeOfAddVos) { - productAttributeOfAddVoMap.put(productAttributeOfAddVo.getAttributeName(), productAttributeOfAddVo); - } - //获取颜色及规格进行拼接 - CopyOnWriteArrayList colorProductAttributeValueVoList = new CopyOnWriteArrayList<>(); - CopyOnWriteArrayList sizeProductAttributeValueVoList = new CopyOnWriteArrayList<>(); - if (productAttributeOfAddVoMap.containsKey("颜色")) { - colorProductAttributeValueVoList = productAttributeOfAddVoMap.get("颜色").getProductAttributeValueVoList(); - } - // 将所有颜色放到一个集合中 - final CopyOnWriteArrayList colorList = new CopyOnWriteArrayList<>(); - for (ProductAttributeValueVo productAttributeValueVo : colorProductAttributeValueVoList) { - colorList.add(productAttributeValueVo.getValue()); - } - if (productAttributeOfAddVoMap.containsKey("尺码")) { - sizeProductAttributeValueVoList = productAttributeOfAddVoMap.get("尺码").getProductAttributeValueVoList(); - } - // 将所有尺码放到一个集合中 - final CopyOnWriteArrayList sizeList = new CopyOnWriteArrayList<>(); - for (ProductAttributeValueVo productAttributeValueVo : sizeProductAttributeValueVoList) { - sizeList.add(productAttributeValueVo.getValue()); - } if ("SYYS色".equals(color) && "SYCM码".equals(size)) { - for (ProductAttributeValueVo productAttributeValueVo : colorProductAttributeValueVoList) { for (ProductAttributeValueVo attributeValueVo : sizeProductAttributeValueVoList) { final SaleDetail saleDetail = new SaleDetail(); diff --git a/hiver-modules/hiver-mall/src/main/resources/mapper/ProductMapper.xml b/hiver-modules/hiver-mall/src/main/resources/mapper/ProductMapper.xml index 7883e3e9..99ba6a17 100644 --- a/hiver-modules/hiver-mall/src/main/resources/mapper/ProductMapper.xml +++ b/hiver-modules/hiver-mall/src/main/resources/mapper/ProductMapper.xml @@ -704,4 +704,10 @@ ORDER BY create_time desc + + + update t_product + set del_flag = 2 + where category_id = #{categoryId,jdbcType=VARCHAR} + \ No newline at end of file diff --git a/hiver-modules/hiver-mall/src/main/resources/mapper/PurchaseMapper.xml b/hiver-modules/hiver-mall/src/main/resources/mapper/PurchaseMapper.xml index 970d51ff..3a6ff37d 100644 --- a/hiver-modules/hiver-mall/src/main/resources/mapper/PurchaseMapper.xml +++ b/hiver-modules/hiver-mall/src/main/resources/mapper/PurchaseMapper.xml @@ -415,7 +415,7 @@ - and in_storage_status in ('2','3') + and in_storage_status in ('2','3','4') and (id in( diff --git a/hiver-modules/hiver-mall/src/main/resources/mapper/SaleMapper.xml b/hiver-modules/hiver-mall/src/main/resources/mapper/SaleMapper.xml index 6f303149..b9a71b92 100644 --- a/hiver-modules/hiver-mall/src/main/resources/mapper/SaleMapper.xml +++ b/hiver-modules/hiver-mall/src/main/resources/mapper/SaleMapper.xml @@ -861,9 +861,15 @@ trans_company, company_name, product_count, remark, sale_name, company_phone, cr and t.status = #{salePageQuery.status} + + and t.transport_type = #{salePageQuery.transportType} + and t.mode_of_service = #{salePageQuery.modeOfService} + + and t.create_time BETWEEN #{salePageQuery.startDate} AND #{salePageQuery.endDate} +