|
@@ -1154,10 +1154,17 @@ public class BizDayworkItemController extends BaseController {
|
|
|
List<BizDayworkCarrier> allCarries = bizDayworkCarrierService.query().eq("is_changed", 0).eq("process_inspection_id", 0L).in("carrier_id", dayworkCarriers.isEmpty() ? Collections.singletonList(0L) : dayworkCarriers.stream().map(BizDayworkCarrier::getCarrierId).collect(Collectors.toList())).list();
|
|
|
// 关联批次的所有最后一条报工
|
|
|
List<BizDayworkItem> bizDayworkItems = bizDayworkItemService.query().in("daywork_id", allCarries.isEmpty() ? Collections.singletonList(0L) : allCarries.stream().map(BizDayworkCarrier::getDayworkId).collect(Collectors.toList())).in("status", Arrays.asList("0", "1", "2", "3")).orderByDesc("status").orderByDesc("create_time").list();
|
|
|
+ List<BizDayworkItem> bizDayworkItemAll = bizDayworkItemService.query().in("daywork_id", allCarries.isEmpty() ? Collections.singletonList(0L) : allCarries.stream().map(BizDayworkCarrier::getDayworkId).collect(Collectors.toList())).orderByDesc("status").orderByDesc("create_time").list();
|
|
|
List<BizDayworkItem> bizDayworkItemList = bizDayworkItemService.query().in("daywork_id", allCarries.isEmpty() ? Collections.singletonList(0L) : allCarries.stream().map(BizDayworkCarrier::getDayworkId).collect(Collectors.toList())).list();
|
|
|
List<BizDaywork> bizDayworks = bizDayworkService.query().in("id", allCarries.isEmpty() ? Collections.singletonList(0L) : allCarries.stream().map(BizDayworkCarrier::getDayworkId).collect(Collectors.toList())).list();
|
|
|
for (BizDaywork v : bizDayworks) {
|
|
|
BizDayworkItem lastItem = bizDayworkItems.stream().filter(l -> l.getDayworkId().equals(v.getId())).findFirst().orElse(null);
|
|
|
+ //不筛选status,当前批次最新一条报工
|
|
|
+ BizDayworkItem lastItemAll = bizDayworkItemAll.stream().filter(l -> l.getDayworkId().equals(v.getId())).findFirst().orElse(null);
|
|
|
+ //为了防止该工序已经周转到下一道序,且已经干了,所以判断如果当前processStepNumber和最新一条的步骤是否相同
|
|
|
+ if(lastItemAll != null && (!lastItemAll.getProcessStepNumber().equals(bizDayworkItem.getProcessStepNumber()) || (lastItemAll.getStatus().equals("4") || lastItemAll.getStatus().equals("5") || lastItemAll.getStatus().equals("7")))) {
|
|
|
+ return error( v.getLotCode()+"批次已周转,请勿重复操作");
|
|
|
+ }
|
|
|
if (lastItem != null && lastItem.getStatus().equals("3")) {
|
|
|
List<BizDayworkItem> allItem = bizDayworkItemList.stream().filter(l -> l.getDayworkId().equals(v.getId()) && l.getTechnologicalProcessDetailId().equals(lastItem.getTechnologicalProcessDetailId())).collect(Collectors.toList());
|
|
|
Integer lot = allItem.stream().mapToInt(BizDayworkItem::getQualifiedNum).sum();
|
|
@@ -1239,7 +1246,7 @@ public class BizDayworkItemController extends BaseController {
|
|
|
// 根据获取到的所有批次的id,查询出所有批次的报工信息,并且状态是【"0", "1", "2", "3"】,按状态值倒序、创建日期的倒序,对数据进行排序,得到的数据是还未周转的数据。
|
|
|
// 后续会通过该集合,获取某批次的最后一条报工信息
|
|
|
List<BizDayworkItem> bizDayworkItems = bizDayworkItemService.query().in("daywork_id", allCarries.isEmpty() ? Collections.singletonList(0L) : allCarries.stream().map(BizDayworkCarrier::getDayworkId).collect(Collectors.toList())).in("status", Arrays.asList("0", "1", "2", "3")).orderByDesc("status").orderByDesc("create_time").list();
|
|
|
-
|
|
|
+ List<BizDayworkItem> bizDayworkItemsAll = bizDayworkItemService.query().in("daywork_id", allCarries.isEmpty() ? Collections.singletonList(0L) : allCarries.stream().map(BizDayworkCarrier::getDayworkId).collect(Collectors.toList())).orderByDesc("status").orderByDesc("create_time").list();
|
|
|
// 根据获取到的所有批次的id,查询出所有批次的报工信息,不需要判断状态
|
|
|
List<BizDayworkItem> bizDayworkItemList = bizDayworkItemService.query().in("daywork_id", allCarries.isEmpty() ? Collections.singletonList(0L) : allCarries.stream().map(BizDayworkCarrier::getDayworkId).collect(Collectors.toList())).list();
|
|
|
// 获取所有的 daywork 数据集合
|
|
@@ -1252,6 +1259,12 @@ public class BizDayworkItemController extends BaseController {
|
|
|
for (BizDaywork v : bizDayworks) {
|
|
|
// 获取该批次的最后一条报工
|
|
|
BizDayworkItem lastItem = bizDayworkItems.stream().filter(l -> l.getDayworkId().equals(v.getId())).findFirst().orElse(null);
|
|
|
+ //批次所有报工,判断是否已经周转了,如果周转返回报错信息
|
|
|
+ BizDayworkItem lastItemAll = bizDayworkItemsAll.stream().filter(l -> l.getDayworkId().equals(v.getId())).findFirst().orElse(null);
|
|
|
+ //为了防止该工序已经周转到下一道序,且已经干了,所以判断如果当前processStepNumber和最新一条的步骤是否相同
|
|
|
+ if(lastItemAll != null && (!lastItemAll.getProcessStepNumber().equals(bizDayworkItem.getProcessStepNumber()) || (lastItemAll.getStatus().equals("4") || lastItemAll.getStatus().equals("5") || lastItemAll.getStatus().equals("7")))) {
|
|
|
+ return error( v.getLotCode()+"批次已周转,请勿重复操作");
|
|
|
+ }
|
|
|
// 如果最后一条报工信息存在,并且报工状态为:3,则说明该报工已经工序完成
|
|
|
if (lastItem != null && lastItem.getStatus().equals("3")) {
|
|
|
// 根据当前批次的id,获取该批次下的工序id与最后一条报工的工序id相同的所有报工信息
|