|
@@ -67,7 +67,14 @@ public class StockDetailServiceImpl extends ServiceImpl<StockDetailMapper, Stock
|
|
|
|
|
|
String jobNo = condition.get("jobNo");
|
|
String jobNo = condition.get("jobNo");
|
|
|
|
|
|
- List<Map<String, Object>> list = baseMapper.restrictedPicking(jobNo);
|
|
|
|
|
|
+ Date date = new Date();
|
|
|
|
+ if (Integer.parseInt(DateUtil.format(date, "H")) >= 7) {
|
|
|
|
+ date = DateUtil.beginOfDay(date);
|
|
|
|
+ } else {
|
|
|
|
+ date = DateUtil.beginOfDay(DateUtil.yesterday());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ List<Map<String, Object>> list = baseMapper.restrictedPicking(jobNo, date);
|
|
|
|
|
|
if (list.size() == 0) {
|
|
if (list.size() == 0) {
|
|
return list;
|
|
return list;
|
|
@@ -124,17 +131,26 @@ public class StockDetailServiceImpl extends ServiceImpl<StockDetailMapper, Stock
|
|
|
|
|
|
listMapByMaterialCode.forEach((k, v) -> {
|
|
listMapByMaterialCode.forEach((k, v) -> {
|
|
List<Map<String, Object>> itemList = baseMapper.selectRecommendMaterial(k, (BigDecimal) v.get(0).get("availableQuantity"));
|
|
List<Map<String, Object>> itemList = baseMapper.selectRecommendMaterial(k, (BigDecimal) v.get(0).get("availableQuantity"));
|
|
-
|
|
|
|
int size = Math.min(v.size(), itemList.size());
|
|
int size = Math.min(v.size(), itemList.size());
|
|
-
|
|
|
|
for (int i = 0; i < size; i++) {
|
|
for (int i = 0; i < size; i++) {
|
|
- v.get(i).putAll(itemList.get(i));
|
|
|
|
|
|
+ BigDecimal availableQuantity = (BigDecimal) v.get(i).get("availableQuantity");
|
|
|
|
+ for (int j = 0; j < itemList.size(); j++) {
|
|
|
|
+ BigDecimal bigDecimal = (BigDecimal) itemList.get(j).get("quantity");
|
|
|
|
+ if (bigDecimal.compareTo(availableQuantity) >= 0) {
|
|
|
|
+ v.get(i).putAll(itemList.get(i));
|
|
|
|
+ itemList.remove(itemList.get(i));
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ itemList.remove(itemList.get(i));
|
|
|
|
+ j--;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
|
|
return list;
|
|
return list;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Override
|
|
@Override
|
|
public void submitRestrictedPicking(Map<String, Object> condition) {
|
|
public void submitRestrictedPicking(Map<String, Object> condition) {
|
|
@@ -332,7 +348,13 @@ public class StockDetailServiceImpl extends ServiceImpl<StockDetailMapper, Stock
|
|
.distinct()
|
|
.distinct()
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
- List<SchedulingActual> schedulingActualListByFlag = getSchedulingActualListByFlag(flagList, null);
|
|
|
|
|
|
+ List<SchedulingActual> schedulingActualListByFlag;
|
|
|
|
+
|
|
|
|
+ if (flagList.size() == 0) {
|
|
|
|
+ schedulingActualListByFlag = new ArrayList<>();
|
|
|
|
+ } else {
|
|
|
|
+ schedulingActualListByFlag = getSchedulingActualListByFlag(flagList, null);
|
|
|
|
+ }
|
|
|
|
|
|
// 赋值实际领料
|
|
// 赋值实际领料
|
|
setActual(result, schedulingActualListByFlag, codeWidthMap);
|
|
setActual(result, schedulingActualListByFlag, codeWidthMap);
|
|
@@ -349,7 +371,8 @@ public class StockDetailServiceImpl extends ServiceImpl<StockDetailMapper, Stock
|
|
private List<SchedulingActual> getSchedulingActualListByFlag(List<Long> flagList, String materialCode) {
|
|
private List<SchedulingActual> getSchedulingActualListByFlag(List<Long> flagList, String materialCode) {
|
|
return schedulingActualService.list(Wrappers.<SchedulingActual>lambdaQuery()
|
|
return schedulingActualService.list(Wrappers.<SchedulingActual>lambdaQuery()
|
|
.eq(ObjectUtil.isNotEmpty(materialCode), SchedulingActual::getMaterialCode, materialCode)
|
|
.eq(ObjectUtil.isNotEmpty(materialCode), SchedulingActual::getMaterialCode, materialCode)
|
|
- .in(SchedulingActual::getFlag, flagList));
|
|
|
|
|
|
+ .in(SchedulingActual::getFlag, flagList)
|
|
|
|
+ );
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|