抄码复合优化拣货
This commit is contained in:
+14
@@ -1145,6 +1145,20 @@ public class OutMaterialDetailImpl extends ServiceImpl<OutMaterialDetailMapper,
|
|||||||
}
|
}
|
||||||
//设置复核数量
|
//设置复核数量
|
||||||
OutMaterialDetail outMaterialDetail = new OutMaterialDetail();
|
OutMaterialDetail outMaterialDetail = new OutMaterialDetail();
|
||||||
|
//抄码取消
|
||||||
|
if (!CollectionUtils.isEmpty(outMaterialDetailDO.getCopyCodeReferenceIdsCancel())){
|
||||||
|
List<Integer> copyCodeReferenceIdsCancel = outMaterialDetailDO.getCopyCodeReferenceIdsCancel();
|
||||||
|
String copyCodeReferenceIds = outMaterialDetailDb.getCopyCodeReferenceIds();
|
||||||
|
List<Integer> copyCodeReferenceIdsList = Arrays.stream(copyCodeReferenceIds.split(",")).map(Integer::parseInt).collect(Collectors.toList());
|
||||||
|
List<Integer> collect = copyCodeReferenceIdsList.stream().filter(id -> !copyCodeReferenceIdsCancel.contains(id)).collect(Collectors.toList());
|
||||||
|
String collect1 = collect.stream().map(String::valueOf).collect(Collectors.joining(","));
|
||||||
|
outMaterialDetail.setCopyCodeReferenceIds(collect1);
|
||||||
|
//抄码商品重置为可用
|
||||||
|
copyCodeReferenceService.lambdaUpdate()
|
||||||
|
.set(CopyCodeReference::getMaterialStatusCode, 1)
|
||||||
|
.set(CopyCodeReference::getMaterialStatusName, "可用")
|
||||||
|
.in(CopyCodeReference::getId, copyCodeReferenceIdsCancel);
|
||||||
|
}
|
||||||
outMaterialDetail.setMaterialDetailId(outMaterialDetailDO.getMaterialDetailId());
|
outMaterialDetail.setMaterialDetailId(outMaterialDetailDO.getMaterialDetailId());
|
||||||
if (1 == type){
|
if (1 == type){
|
||||||
//复核
|
//复核
|
||||||
|
|||||||
+17
-4
@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|||||||
import com.mhd.common.core.exception.ServiceException;
|
import com.mhd.common.core.exception.ServiceException;
|
||||||
import com.mhd.common.security.utils.SecurityUtils;
|
import com.mhd.common.security.utils.SecurityUtils;
|
||||||
import com.mhd.system.api.model.LoginUser;
|
import com.mhd.system.api.model.LoginUser;
|
||||||
|
import com.mhd.wms.domain.copyCodeReference.entity.CopyCodeReference;
|
||||||
|
import com.mhd.wms.domain.copyCodeReference.repository.facade.ICopyCodeReferenceService;
|
||||||
import com.mhd.wms.domain.outMaterialDetail.repository.mapper.OutMaterialDetailMapper;
|
import com.mhd.wms.domain.outMaterialDetail.repository.mapper.OutMaterialDetailMapper;
|
||||||
import com.mhd.wms.domain.outMaterialDetail.repository.todo.OutMaterialDetailDO;
|
import com.mhd.wms.domain.outMaterialDetail.repository.todo.OutMaterialDetailDO;
|
||||||
import com.mhd.wms.domain.outMaterialDetailSerialNumber.entity.OutMaterialDetailSerialNumber;
|
import com.mhd.wms.domain.outMaterialDetailSerialNumber.entity.OutMaterialDetailSerialNumber;
|
||||||
@@ -28,10 +30,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -125,6 +124,9 @@ public class PickingMaterialDetailImpl extends ServiceImpl<PickingMaterialDetail
|
|||||||
return pickingMaterialDetailPO;
|
return pickingMaterialDetailPO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ICopyCodeReferenceService copyCodeReferenceService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description 拣货批量修改物流明细
|
* @description 拣货批量修改物流明细
|
||||||
* @author ZhouGY
|
* @author ZhouGY
|
||||||
@@ -157,6 +159,17 @@ public class PickingMaterialDetailImpl extends ServiceImpl<PickingMaterialDetail
|
|||||||
PickingMaterialDetail pickingMaterialDetail = new PickingMaterialDetail();
|
PickingMaterialDetail pickingMaterialDetail = new PickingMaterialDetail();
|
||||||
if (!pickingMaterialDetailDO.getCopyCodeReferenceIds().equals(pickingMaterialDetailDb.getCopyCodeReferenceIds())){
|
if (!pickingMaterialDetailDO.getCopyCodeReferenceIds().equals(pickingMaterialDetailDb.getCopyCodeReferenceIds())){
|
||||||
pickingMaterialDetail.setCopyCodeReferenceIds(pickingMaterialDetailDO.getCopyCodeReferenceIds());
|
pickingMaterialDetail.setCopyCodeReferenceIds(pickingMaterialDetailDO.getCopyCodeReferenceIds());
|
||||||
|
//数据库中的
|
||||||
|
List<Integer> copDO = Arrays.stream(pickingMaterialDetailDb.getCopyCodeReferenceIds().split(","))
|
||||||
|
.map(Integer::parseInt).collect(Collectors.toList());
|
||||||
|
//用户取消后的
|
||||||
|
List<Integer> cop = Arrays.stream(pickingMaterialDetailDO.getCopyCodeReferenceIds().split(","))
|
||||||
|
.map(Integer::parseInt).collect(Collectors.toList());
|
||||||
|
List<Integer> collect = copDO.stream().filter(id -> !cop.contains(id)).collect(Collectors.toList());
|
||||||
|
copyCodeReferenceService.lambdaUpdate()
|
||||||
|
.set(CopyCodeReference::getMaterialStatusCode, 1)
|
||||||
|
.set(CopyCodeReference::getMaterialStatusName, "可用")
|
||||||
|
.in(CopyCodeReference::getId, collect);
|
||||||
}
|
}
|
||||||
pickingMaterialDetail.setMaterialDetailId(pickingMaterialDetailDO.getMaterialDetailId());
|
pickingMaterialDetail.setMaterialDetailId(pickingMaterialDetailDO.getMaterialDetailId());
|
||||||
pickingMaterialDetail.setUpdateBy(loginUser.getUserid());
|
pickingMaterialDetail.setUpdateBy(loginUser.getUserid());
|
||||||
|
|||||||
+4
@@ -910,6 +910,10 @@ public class StockOutOrderDomainService {
|
|||||||
stockOutOrderPO.setOutMaterialCheckPO(outMaterialCheckPO);
|
stockOutOrderPO.setOutMaterialCheckPO(outMaterialCheckPO);
|
||||||
|
|
||||||
List<OutMaterialDetailPO> materialDetailList = stockOutOrderPO.getMaterialDetailList();
|
List<OutMaterialDetailPO> materialDetailList = stockOutOrderPO.getMaterialDetailList();
|
||||||
|
for (OutMaterialDetailPO outMaterialDetailPO : materialDetailList) {
|
||||||
|
MaterialBaseInfo materialBaseInfo = materialBaseInfoMapper.selectById(outMaterialDetailPO.getMaterialBaseInfoId());
|
||||||
|
outMaterialDetailPO.setCopyCode(materialBaseInfo.getCopyCode());
|
||||||
|
}
|
||||||
// 性能优化:批量获取批次属性,避免N+1查询问题
|
// 性能优化:批量获取批次属性,避免N+1查询问题
|
||||||
// 1. 收集所有唯一的materialBaseInfoId
|
// 1. 收集所有唯一的materialBaseInfoId
|
||||||
Set<Long> materialBaseInfoIdSet = materialDetailList.stream()
|
Set<Long> materialBaseInfoIdSet = materialDetailList.stream()
|
||||||
|
|||||||
Reference in New Issue
Block a user