From b315c23402a63f9907e2b3b63017095cfa9491aa Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Wed, 26 Jun 2024 18:25:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=BA=E5=85=A5=E5=BA=93=E6=88=90=E6=9C=AC?= =?UTF-8?q?=E4=BB=B7=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TbProductStockOperateServiceImpl.java | 85 ++++++++++--------- 1 file changed, 45 insertions(+), 40 deletions(-) diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductStockOperateServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductStockOperateServiceImpl.java index c4784bfc..e481d232 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductStockOperateServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductStockOperateServiceImpl.java @@ -46,11 +46,11 @@ import javax.persistence.EntityManager; import javax.servlet.http.HttpServletResponse; /** -* @website https://eladmin.vip -* @description 服务实现 -* @author lyf -* @date 2024-01-25 -**/ + * @author lyf + * @website https://eladmin.vip + * @description 服务实现 + * @date 2024-01-25 + **/ @Service @RequiredArgsConstructor public class TbProductStockOperateServiceImpl implements TbProductStockOperateService { @@ -62,7 +62,7 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe private final TbShopInfoRepository shopInfoRepository; private final TbProductSkuRepository tbProductSkuRepository; private final TbProductSkuService productSkuService; - private final EntityManager entityManager; + private final EntityManager entityManager; private final RedisUtils redisUtils; private final TbProductRepository tbProductRepository; @@ -74,25 +74,25 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe Pageable pageable = PageRequest.of(criteria.getPage(), criteria.getSize(), sort); - Page page = tbProductStockOperateRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); + Page page = tbProductStockOperateRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable); List stockOperateVOList = new ArrayList<>(); - for (TbProductStockOperate stockOperate :page.getContent()) { + for (TbProductStockOperate stockOperate : page.getContent()) { ProductStockOperateVO stockOperateVO = new ProductStockOperateVO(); - BeanUtils.copyProperties(stockOperate,stockOperateVO); + BeanUtils.copyProperties(stockOperate, stockOperateVO); stockOperateVO.setStockSnap(ListUtil.stringChangeList(stockOperate.getStockSnap())); stockOperateVO.setOperatorSnap(StringUtils.stringChangeMap(stockOperate.getOperatorSnap())); stockOperateVO.setType(); stockOperateVOList.add(stockOperateVO); } HashMap map = new HashMap<>(); - map.put("content",stockOperateVOList); + map.put("content", stockOperateVOList); map.put("totalElements", page.getTotalElements()); return map; } @Override - public List queryAll(TbProductStockOperateQueryCriteria criteria){ - return tbProductStockOperateRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)); + public List queryAll(TbProductStockOperateQueryCriteria criteria) { + return tbProductStockOperateRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder)); } @Override @@ -113,12 +113,12 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe public ProductStockOperateVO findById(Integer id) { TbProductStockOperate tbProductStockOperate = tbProductStockOperateRepository.findById(id).orElseGet(TbProductStockOperate::new); ProductStockOperateVO stockOperateVO = new ProductStockOperateVO(); - BeanUtils.copyProperties(tbProductStockOperate,stockOperateVO); + BeanUtils.copyProperties(tbProductStockOperate, stockOperateVO); stockOperateVO.setStockSnap(ListUtil.stringChangeList(tbProductStockOperate.getStockSnap())); stockOperateVO.setOperatorSnap(StringUtils.stringChangeMap(tbProductStockOperate.getOperatorSnap())); - ValidationUtil.isNull(tbProductStockOperate.getId(),"TbProductStockOperate","id",id); + ValidationUtil.isNull(tbProductStockOperate.getId(), "TbProductStockOperate", "id", id); return stockOperateVO; } @@ -130,18 +130,19 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe /** * 出库 + * * @param resources * @return */ @Override @Transactional(rollbackFor = Exception.class) public OutAndOnDto createOutAndONOperate(OutAndOnDto resources) { - if(CollectionUtils.isEmpty(resources.getList())){ + if (CollectionUtils.isEmpty(resources.getList())) { throw new BadRequestException("出入库数据不可为空"); } //用户相关 TbShopInfo byId = shopInfoRepository.findById(Integer.valueOf(resources.getShopId())).orElseGet(TbShopInfo::new); - if (byId.getId() == null){ + if (byId.getId() == null) { throw new BadRequestException("商户号有误"); } //增加操作日志 @@ -151,14 +152,14 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe stockOperate.setStockSnap(resources.getList().toString()); stockOperate.setType(resources.getType()); //其它入库 //purveyor 供应商入库 - if ("purchase".equals(resources.getType()) || "purveyor".equals(resources.getType())){ + if ("purchase".equals(resources.getType()) || "purveyor".equals(resources.getType())) { stockOperate.setSubType(1); - }else { + } else { stockOperate.setSubType(-1); } Map operatorSnapMap = new HashMap<>(); operatorSnapMap.put("name", byId.getShopName()); - operatorSnapMap.put("account",byId.getAccount()); + operatorSnapMap.put("account", byId.getAccount()); stockOperate.setOperatorSnap(JSON.toJSONString(operatorSnapMap)); stockOperate.setBatchNumber(resources.getBatchNumber()); @@ -173,9 +174,9 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe //供应商退货 reject //供应商入库 purveyor if ("reject".equals(resources.getType()) || "purveyor".equals(resources.getType())) { - if(StringUtils.isNotBlank(resources.getPurveyorId())){ + if (StringUtils.isNotBlank(resources.getPurveyorId())) { Optional byId1 = purveyorRepository.findById(Integer.valueOf(resources.getPurveyorId())); - if(byId1.isPresent()){ + if (byId1.isPresent()) { TbShopPurveyor tbShopPurveyor = byId1.get(); resources.setPurveyorName(tbShopPurveyor.getPurveyorName()); } @@ -257,7 +258,7 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe // 获取增加后的库存 double refundStockNum = getStockNum(product, tbProductSku, productListDto.getNumber(), false); - setProSpecInfo(product, refundStockNum, + setProSpecInfo(product, tbProductSku, refundStockNum, productListDto.getCostPrice(), isDistribute); break; @@ -269,7 +270,7 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe productStockDetail.setType("供应商出库"); // 获取增加后的库存 - setProSpecInfo(product, getStockNum(product, tbProductSku, productListDto.getNumber(), false), + setProSpecInfo(product, tbProductSku, getStockNum(product, tbProductSku, productListDto.getNumber(), false), productListDto.getCostPrice(), isDistribute); break; //后台入库 @@ -282,7 +283,7 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe // 获取增加后的库存 double stockNum = getStockNum(product, tbProductSku, productListDto.getNumber(), true); - setProSpecInfo(product, stockNum, + setProSpecInfo(product, tbProductSku, stockNum, productListDto.getCostPrice(), isDistribute); break; @@ -295,7 +296,7 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe productStockDetail.setType("其他入库"); // 获取增加后的库存 - setProSpecInfo(product, getStockNum(product, tbProductSku, productListDto.getNumber(), true), + setProSpecInfo(product, tbProductSku, getStockNum(product, tbProductSku, productListDto.getNumber(), true), productListDto.getCostPrice(), isDistribute); break; case "other-out": @@ -307,7 +308,7 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe productStockDetail.setType("其他出库"); // 获取增加后的库存 - setProSpecInfo(product, getStockNum(product, tbProductSku, productListDto.getNumber(), false), + setProSpecInfo(product, tbProductSku, getStockNum(product, tbProductSku, productListDto.getNumber(), false), productListDto.getCostPrice(), isDistribute); break; default: @@ -328,7 +329,7 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe idStockMap.put(productListDto.getId(), productStockDetail.getStockNumber()); } redisUtils.redisUp(2, resources.getShopId(), idStockMap); - }else { + } else { tbProductStockOperateRepository.save(stockOperate); } return resources; @@ -338,13 +339,13 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe if (product.getIsDistribute() == 1) { product.setStockNumber((int) (isAdd ? product.getStockNumber() + num : product.getStockNumber() - num)); return product.getStockNumber(); - }else { + } else { productSku.setStockNumber(isAdd ? productSku.getStockNumber() + num : productSku.getStockNumber() - num); return productSku.getStockNumber(); } } - private void setProSpecInfo(TbProduct product, double num, BigDecimal cost, boolean isShareStock) { + private void setProSpecInfo(TbProduct product, TbProductSku productSku, double num, BigDecimal cost, boolean isShareStock) { if (product.getSpecInfo() != null) { JSONArray specInfoArr = JSON.parseArray(product.getSpecInfo()); for (Object item : specInfoArr) { @@ -352,7 +353,11 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe if (isShareStock) { jsonObject.put("stockNumber", num); jsonObject.put("costPrice", cost); - }else if (product.getSpecInfo() != null && product.getSpecInfo().equals(jsonObject.getString("specSnap"))) { + } else if (productSku != null && + ( + productSku.getId().equals(jsonObject.getInteger("id")) || + (productSku.getSpecSnap() != null && productSku.getSpecSnap().equals(jsonObject.getString("specSnap"))) + )) { jsonObject.put("stockNumber", num); jsonObject.put("costPrice", cost); break; @@ -367,7 +372,7 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe @Transactional(rollbackFor = Exception.class) public void update(TbProductStockOperate resources) { TbProductStockOperate tbProductStockOperate = tbProductStockOperateRepository.findById(resources.getId()).orElseGet(TbProductStockOperate::new); - ValidationUtil.isNull( tbProductStockOperate.getId(),"TbProductStockOperate","id",resources.getId()); + ValidationUtil.isNull(tbProductStockOperate.getId(), "TbProductStockOperate", "id", resources.getId()); tbProductStockOperate.copy(resources); tbProductStockOperateRepository.save(tbProductStockOperate); } @@ -383,26 +388,26 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe public void download(List all, HttpServletResponse response) throws IOException { List> list = new ArrayList<>(); - for (TbProductStockOperate stockOperate :all) { + for (TbProductStockOperate stockOperate : all) { ProductStockOperateVO stockOperateVO = new ProductStockOperateVO(); - BeanUtils.copyProperties(stockOperate,stockOperateVO); + BeanUtils.copyProperties(stockOperate, stockOperateVO); stockOperateVO.setType(); stockOperateVO.setStockSnap(ListUtil.stringChangeList(stockOperate.getStockSnap())); stockOperateVO.setOperatorSnap(StringUtils.stringChangeMap(stockOperate.getOperatorSnap())); - Map map = new LinkedHashMap<>(); + Map map = new LinkedHashMap<>(); for (int i = 0; i < stockOperateVO.getStockSnap().size(); i++) { - if(i==0){ + if (i == 0) { map.put("操作类型 ", stockOperateVO.getType()); map.put("供应商名称", stockOperateVO.getPurveyorName()); - map.put("商品数量 ", stockOperateVO.getStockSnap().size()); - map.put(" 备 注 ", stockOperateVO.getRemark()); + map.put("商品数量 ", stockOperateVO.getStockSnap().size()); + map.put(" 备 注 ", stockOperateVO.getRemark()); map.put("操作人 ", stockOperateVO.getOperatorSnap().get("account")); map.put("创建时间", DateUtil.getStrTime(new Date(stockOperateVO.getStockTime()))); - }else { + } else { map.put("操作类型 ", ""); map.put("供应商名称", ""); - map.put("商品数量 ", ""); - map.put(" 备 注 ", ""); + map.put("商品数量 ", ""); + map.put(" 备 注 ", ""); map.put("操 作 人", ""); map.put("创建时间", ""); }