抄码复合优化拣货
This commit is contained in:
+14
@@ -1145,6 +1145,20 @@ public class OutMaterialDetailImpl extends ServiceImpl<OutMaterialDetailMapper,
|
||||
}
|
||||
//设置复核数量
|
||||
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());
|
||||
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.security.utils.SecurityUtils;
|
||||
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.todo.OutMaterialDetailDO;
|
||||
import com.mhd.wms.domain.outMaterialDetailSerialNumber.entity.OutMaterialDetailSerialNumber;
|
||||
@@ -28,10 +30,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -125,6 +124,9 @@ public class PickingMaterialDetailImpl extends ServiceImpl<PickingMaterialDetail
|
||||
return pickingMaterialDetailPO;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
private ICopyCodeReferenceService copyCodeReferenceService;
|
||||
|
||||
/**
|
||||
* @description 拣货批量修改物流明细
|
||||
* @author ZhouGY
|
||||
@@ -157,6 +159,17 @@ public class PickingMaterialDetailImpl extends ServiceImpl<PickingMaterialDetail
|
||||
PickingMaterialDetail pickingMaterialDetail = new PickingMaterialDetail();
|
||||
if (!pickingMaterialDetailDO.getCopyCodeReferenceIds().equals(pickingMaterialDetailDb.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.setUpdateBy(loginUser.getUserid());
|
||||
|
||||
+4
@@ -910,6 +910,10 @@ public class StockOutOrderDomainService {
|
||||
stockOutOrderPO.setOutMaterialCheckPO(outMaterialCheckPO);
|
||||
|
||||
List<OutMaterialDetailPO> materialDetailList = stockOutOrderPO.getMaterialDetailList();
|
||||
for (OutMaterialDetailPO outMaterialDetailPO : materialDetailList) {
|
||||
MaterialBaseInfo materialBaseInfo = materialBaseInfoMapper.selectById(outMaterialDetailPO.getMaterialBaseInfoId());
|
||||
outMaterialDetailPO.setCopyCode(materialBaseInfo.getCopyCode());
|
||||
}
|
||||
// 性能优化:批量获取批次属性,避免N+1查询问题
|
||||
// 1. 收集所有唯一的materialBaseInfoId
|
||||
Set<Long> materialBaseInfoIdSet = materialDetailList.stream()
|
||||
|
||||
Reference in New Issue
Block a user