|
@@ -160,6 +160,7 @@ public class BizDayworkController extends BaseController {
|
|
|
List<BizDayworkItem> allDayworkItems = new ArrayList<>();
|
|
|
List<BizLot> lotList = new ArrayList<>();
|
|
|
if (!myDayworkItems.isEmpty()) {
|
|
|
+ /*
|
|
|
// 将报工记录中的daywork_id,整个到一个List集合中,用于后续的查询
|
|
|
List<Long> dayworkIds = myDayworkItems.stream()
|
|
|
.map(BizDayworkItem::getDayworkId)
|
|
@@ -181,6 +182,8 @@ public class BizDayworkController extends BaseController {
|
|
|
//获取所有lotId
|
|
|
List<Long> allLotsIdList = dayworks.stream().map(BizDaywork::getLotId).collect(Collectors.toList());
|
|
|
lotList = bizLotService.query().in("id", allLotsIdList.isEmpty()? Collections.singletonList(0L) : dayworks.stream().map(BizDaywork::getLotId).collect(Collectors.toList())).list();
|
|
|
+ */
|
|
|
+ setAllDayworkItemsAndLots(myDayworkItems, keywords, dayworks, allDayworkItems, lotList, lots);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -188,6 +191,7 @@ public class BizDayworkController extends BaseController {
|
|
|
List<BizDaywork> dayworkList = new ArrayList<>();
|
|
|
// 对之前获取到的 daywork 集合进行过滤,将符合条件的daywork,添加到dayworkList集合中
|
|
|
for (BizDaywork item : dayworks) {
|
|
|
+ /*
|
|
|
//添加批次单批量
|
|
|
item.setOneLotQuantity(lotList.stream().filter(v -> v.getId().equals(item.getLotId())).collect(Collectors.toList()).get(0).getProductionQuantity());
|
|
|
//拿到批次是否批废信息
|
|
@@ -214,6 +218,8 @@ public class BizDayworkController extends BaseController {
|
|
|
item.setDayworkItemList(currentMyDayworkItems);
|
|
|
dayworkList.add(item);
|
|
|
}
|
|
|
+ */
|
|
|
+ dayworkListAddItem(dayworkList, item, lotList, allDayworkItems, myDayworkItems);
|
|
|
}
|
|
|
|
|
|
// 如果有报工数据
|
|
@@ -257,14 +263,13 @@ public class BizDayworkController extends BaseController {
|
|
|
}
|
|
|
|
|
|
/* ****************************** 获取与 daywork 相关的所有批次,为了获取每个批次中的投产数 ****************************** */
|
|
|
- List<Long> allLotIds = dayworkList.stream().map(BizDaywork::getLotId).collect(Collectors.toList());
|
|
|
-
|
|
|
- List<BizLot> allLots = bizLotService.query().in("id", allLotIds).list();
|
|
|
-
|
|
|
+ // 直接通过daywork中的 technological_process_id 组成的集合,获取到对应的批次工艺工序清单,解决【正常】与【异常】冲突的问题
|
|
|
+ List<Long> allTechnologicalProcessIds = dayworkList.stream().map(BizDaywork::getTechnologicalProcessId).collect(Collectors.toList());
|
|
|
List<BizLotTechnologicalProcess> allLotTechnologicalProcesses = bizLotTechnologicalProcessService.query()
|
|
|
- .in("lot_id", allLotIds)
|
|
|
+ .in("id", allTechnologicalProcessIds)
|
|
|
.eq("is_stop", 0)
|
|
|
.list();
|
|
|
+
|
|
|
List<Long> allWastRecyclingIds = allLotTechnologicalProcesses.stream().map(BizLotTechnologicalProcess::getId).collect(Collectors.toList());
|
|
|
List<BizLotTechnologicalProcessDetail> allLotTechnologicalDetails = new ArrayList<>();
|
|
|
if (!allWastRecyclingIds.isEmpty()) {
|
|
@@ -280,7 +285,10 @@ public class BizDayworkController extends BaseController {
|
|
|
.list();
|
|
|
//查询计划单下所有的报工记录
|
|
|
List<BizDayworkItem> totalDayworkItemList = bizDayworkItemService.query().eq("production_plan_detail_id", productionPlanDetailId).list();
|
|
|
+
|
|
|
// 循环最终要展示的 daywork 集合,根据每个daywork,精确赋予相关数据
|
|
|
+ List<Long> allLotIds = dayworkList.stream().map(BizDaywork::getLotId).collect(Collectors.toList());
|
|
|
+ List<BizLot> allLots = bizLotService.query().in("id", allLotIds).list();
|
|
|
for (BizDaywork daywork : dayworkList) {
|
|
|
//把批次的lot投产数量加到daywork里
|
|
|
allLots.stream().filter(l -> l.getId().equals(daywork.getLotId()))
|
|
@@ -553,9 +561,61 @@ public class BizDayworkController extends BaseController {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ private void setAllDayworkItemsAndLots(List<BizDayworkItem> myDayworkItems, String keywords, List<BizDaywork> dayworks, List<BizDayworkItem> allDayworkItems, List<BizLot> lotList, List<BizLot> lots) {
|
|
|
+ List<Long> dayworkIds = myDayworkItems.stream()
|
|
|
+ .map(BizDayworkItem::getDayworkId)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ // 再根据整合后报工明细中对应的 daywork_id 的集合,获取到对应的 daywork 集合
|
|
|
+ if (keywords.isEmpty())
|
|
|
+ dayworks = bizDayworkService.query().in("id", dayworkIds).list();
|
|
|
+ else if (!lots.isEmpty()) {
|
|
|
+ List<Long> lotIds = lots.stream().map(BizLot::getId).collect(Collectors.toList());
|
|
|
+ dayworks = bizDayworkService.query()
|
|
|
+ .in("id", dayworkIds)
|
|
|
+ .in("lot_id", lotIds)
|
|
|
+ .list();
|
|
|
+ }
|
|
|
+ // 根据得到的 daywork 集合,将 daywork_id 整合到集合中
|
|
|
+ List<Long> allDayworkIdList = dayworks.stream().map(BizDaywork::getId).collect(Collectors.toList());
|
|
|
+ // 再根据得到的daywork_id集合,获取所有的报工明细
|
|
|
+ allDayworkItems = bizDayworkItemService.query().in("daywork_id", allDayworkIdList.isEmpty() ? Collections.singletonList(0L) : dayworks.stream().map(BizDaywork::getId).collect(Collectors.toList())).list();
|
|
|
+ //获取所有lotId
|
|
|
+ List<Long> allLotsIdList = dayworks.stream().map(BizDaywork::getLotId).collect(Collectors.toList());
|
|
|
+ lotList = bizLotService.query().in("id", allLotsIdList.isEmpty()? Collections.singletonList(0L) : dayworks.stream().map(BizDaywork::getLotId).collect(Collectors.toList())).list();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void dayworkListAddItem(List<BizDaywork> dayworkList, BizDaywork daywork, List<BizLot> lotList, List<BizDayworkItem> allDayworkItems, List<BizDayworkItem> myDayworkItems){
|
|
|
+ //添加批次单批量
|
|
|
+ daywork.setOneLotQuantity(lotList.stream().filter(v -> v.getId().equals(daywork.getLotId())).collect(Collectors.toList()).get(0).getProductionQuantity());
|
|
|
+ //拿到批次是否批废信息
|
|
|
+ daywork.setIsWaste(lotList.stream().filter(v -> v.getId().equals(daywork.getLotId())).collect(Collectors.toList()).get(0).getIsWaste());
|
|
|
+ // 根据当前的dayworkId,获取相应的daywork_item集合,并根据创建日期进行倒叙排序
|
|
|
+ List<BizDayworkItem> currentDayworkItems = allDayworkItems.stream()
|
|
|
+ .filter(di -> di.getDayworkId().equals(daywork.getId()))
|
|
|
+ .sorted(Comparator.comparing(BizDayworkItem::getCreateTime).reversed())
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ // 获取最后一条报工明细
|
|
|
+ BizDayworkItem latest = currentDayworkItems.get(0);
|
|
|
+ String status = currentDayworkItems.stream().filter(v -> v.getTechnologicalProcessDetailId().equals(latest.getTechnologicalProcessDetailId()))
|
|
|
+ .collect(Collectors.toList())
|
|
|
+ .get(0)
|
|
|
+ .getStatus();
|
|
|
+ // 状态 == 5 时,说明已经进入周转中,那么该条daywork,将不再页面中显示,所以,通过对status的值的判断,添加到daywork集合中
|
|
|
+ if (Integer.parseInt(status) < 5) {
|
|
|
+ // 获取当前操作者自己的报工记录
|
|
|
+ List<BizDayworkItem> currentMyDayworkItems = myDayworkItems.stream()
|
|
|
+ .filter(di -> di.getDayworkId().equals(daywork.getId()))
|
|
|
+ .sorted(Comparator.comparing(BizDayworkItem::getCreateTime))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ // 将获取到的 day_work_item 集合,赋值给daywork中的相对应属性
|
|
|
+ daywork.setDayworkItemList(currentMyDayworkItems);
|
|
|
+ dayworkList.add(daywork);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
- * @param bizDaywork
|
|
|
- * @return
|
|
|
+ * @param bizDaywork 查询条件
|
|
|
+ * @return AjaxResult
|
|
|
*/
|
|
|
@GetMapping("/selectProcessList")
|
|
|
public AjaxResult selectProcessList(BizDaywork bizDaywork) {
|