|
@@ -0,0 +1,96 @@
|
|
|
|
+package com.sd.business.service.inventory.impl;
|
|
|
|
+
|
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
+import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
|
|
+import com.sd.business.entity.in.emums.InOutTypeEnum;
|
|
|
|
+import com.sd.business.entity.inventory.dto.InventoryFinishedTemporaryDetailAddDto;
|
|
|
|
+import com.sd.business.entity.inventory.dto.InventoryFinishedTemporaryDetailSelectDto;
|
|
|
|
+import com.sd.business.entity.inventory.po.InventoryFinishedTemporary;
|
|
|
|
+import com.sd.business.entity.inventory.po.InventoryFinishedTemporaryDetail;
|
|
|
|
+import com.sd.business.entity.inventory.vo.InventoryFinishedTemporaryDetailVo;
|
|
|
|
+import com.sd.business.entity.order.po.OrderSku;
|
|
|
|
+import com.sd.business.entity.sku.po.SkuSpec;
|
|
|
|
+import com.sd.business.mapper.inventory.InventoryFinishedTemporaryDetailMapper;
|
|
|
|
+import com.sd.business.service.inventory.InventoryFinishedService;
|
|
|
|
+import com.sd.business.service.inventory.InventoryFinishedTemporaryDetailService;
|
|
|
|
+import com.sd.business.service.inventory.InventoryFinishedTemporaryService;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
+
|
|
|
|
+import java.util.Date;
|
|
|
|
+import java.util.List;
|
|
|
|
+import java.util.Objects;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * <p>
|
|
|
|
+ * 成品暂存仓库操作记录 服务实现类
|
|
|
|
+ * </p>
|
|
|
|
+ *
|
|
|
|
+ * @author
|
|
|
|
+ * @since 2023-11-15
|
|
|
|
+ */
|
|
|
|
+@Service
|
|
|
|
+public class InventoryFinishedTemporaryDetailServiceImpl extends ServiceImpl<InventoryFinishedTemporaryDetailMapper, InventoryFinishedTemporaryDetail> implements InventoryFinishedTemporaryDetailService {
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private InventoryFinishedTemporaryService inventoryFinishedTemporaryService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private InventoryFinishedService inventoryFinishedService;
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public Page<InventoryFinishedTemporaryDetailVo> getPage(InventoryFinishedTemporaryDetailSelectDto dto) {
|
|
|
|
+ IWrapper<InventoryFinishedTemporaryDetail> wrapper = getWrapper();
|
|
|
|
+ wrapper.orderByDesc("i", InventoryFinishedTemporaryDetail::getId);
|
|
|
|
+ wrapper.eq("i", InventoryFinishedTemporaryDetail::getType, dto.getSkuSpecCode());
|
|
|
|
+ wrapper.ge("i", InventoryFinishedTemporaryDetail::getOperationTime, dto.getBeginTime());
|
|
|
|
+ wrapper.le("i", InventoryFinishedTemporaryDetail::getOperationTime, dto.getEndTime());
|
|
|
|
+ wrapper.like("ss", SkuSpec::getCode, dto.getSkuSpecCode());
|
|
|
|
+ wrapper.like("ss", SkuSpec::getName, dto.getSkuSpecName());
|
|
|
|
+ return this.baseMapper.getPage(dto.getPage(), wrapper);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void add(InventoryFinishedTemporaryDetailAddDto addDto) {
|
|
|
|
+ List<InventoryFinishedTemporaryDetail> detailDtoList = addDto.getDetailDtoList();
|
|
|
|
+
|
|
|
|
+ List<InventoryFinishedTemporary> finishedTemporaryList = detailDtoList.stream().map(item -> {
|
|
|
|
+ InventoryFinishedTemporary finishedTemporary = new InventoryFinishedTemporary();
|
|
|
|
+ finishedTemporary.setSkuSpecId(item.getSkuSpecId());
|
|
|
|
+ finishedTemporary.setQuantity(item.getQuantity());
|
|
|
|
+ return finishedTemporary;
|
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ if (Objects.equals(addDto.getType(), InOutTypeEnum.IN.getKey())) {
|
|
|
|
+ inventoryFinishedTemporaryService.inOut(finishedTemporaryList, true);
|
|
|
|
+ } else {
|
|
|
|
+ inventoryFinishedTemporaryService.inOut(finishedTemporaryList, false);
|
|
|
|
+ // 调拨出库到成品库,新增无源成品
|
|
|
|
+ List<OrderSku> orderSkuList = detailDtoList.stream()
|
|
|
|
+ .map(item -> {
|
|
|
|
+ OrderSku orderSku = new OrderSku();
|
|
|
|
+ orderSku.setSkuSpecId(item.getSkuSpecId());
|
|
|
|
+ orderSku.setQuantity(item.getQuantity());
|
|
|
|
+ return orderSku;
|
|
|
|
+ })
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+ inventoryFinishedService.noSourceInWarehousing(orderSkuList);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 赋值
|
|
|
|
+ if (addDto.getOperationTime() == null) {
|
|
|
|
+ addDto.setOperationTime(new Date());
|
|
|
|
+ }
|
|
|
|
+ detailDtoList.forEach(item -> {
|
|
|
|
+ item.setType(addDto.getType());
|
|
|
|
+ item.setOperationTime(addDto.getOperationTime());
|
|
|
|
+ item.setAllotFlag(addDto.getAllotFlag());
|
|
|
|
+ item.setRemark(addDto.getRemark());
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ // 保存成品暂存仓库操作记录
|
|
|
|
+ this.saveBatch(detailDtoList);
|
|
|
|
+ }
|
|
|
|
+}
|