总检时,更新配件申请表中领料数量小于申请数量的配件到维修工单子表
This commit is contained in:
parent
d9af2bee73
commit
eb5f52e67d
@ -775,46 +775,51 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
|
|||||||
.setSql("now_repair_name = adviser_name")
|
.setSql("now_repair_name = adviser_name")
|
||||||
.eq(DlRepairTickets::getId, respVO.getId())
|
.eq(DlRepairTickets::getId, respVO.getId())
|
||||||
);
|
);
|
||||||
// todo 这儿有点问题,先搁置
|
// 先查满足条件的申请表
|
||||||
/*
|
ArrayList<String> status = new ArrayList<>();
|
||||||
如果同一个配件,申请了多次,按理应该在工单中合在一起
|
status.add("01"); // 待审核
|
||||||
但如果同一个配件在申请多次的情况下,打的折扣不一样,就不能合在一起
|
status.add("05"); // 已驳回
|
||||||
我怎么知道工单中的配件是那一次申请的
|
// 查工单所有已通过的配件申请单
|
||||||
两个方案,让工单的配件关联申请表,或者,让配件申请表记录打的折扣
|
List<DlTicketWares> list = ticketWaresService.list(new LambdaQueryWrapper<DlTicketWares>().and(item -> {
|
||||||
*/
|
item.eq(DlTicketWares::getTicketId, respVO.getId())
|
||||||
// // 先查满足条件的申请表
|
.notIn(DlTicketWares::getStatus, status);
|
||||||
// ArrayList<String> status = new ArrayList<>();
|
}));
|
||||||
// status.add("01"); // 待审核
|
// 查配件申请表的所有已领取数量小于申请数量的子表信息
|
||||||
// status.add("05"); // 已驳回
|
List<String> ids = list.stream().map(DlTicketWares::getId).collect(Collectors.toList());
|
||||||
// // 查工单所有已通过的配件申请单
|
List<DlTwItem> twItems = twItemService.list(new LambdaQueryWrapper<DlTwItem>().and(item -> {
|
||||||
// List<DlTicketWares> list = ticketWaresService.list(new LambdaQueryWrapper<DlTicketWares>().and(item -> {
|
item.in(DlTwItem::getTwId, ids)
|
||||||
// item.eq(DlTicketWares::getTicketId, respVO.getId())
|
.apply("wares_already_count < wares_count");
|
||||||
// .notIn(DlTicketWares::getStatus, status);
|
}));
|
||||||
// }));
|
if (CollectionUtil.isNotEmpty(twItems)) {
|
||||||
// // 查配件申请表的所有已领取数量小于申请数量的子表信息
|
// 更新工单子表(主要是把已领料的字段同步给工单配件的数量字段)
|
||||||
// List<String> ids = list.stream().map(DlTicketWares::getId).collect(Collectors.toList());
|
// 查询工单子表(三个查询条件,属于那个工单,属于配件类型,属于需要改变的(即申请表的已领取数量小于申请数量的))
|
||||||
// List<DlTwItem> twItems = twItemService.list(new LambdaQueryWrapper<DlTwItem>().and(item -> {
|
Set<String> waresId = twItems.stream().map(DlTwItem::getWaresId).collect(Collectors.toSet());
|
||||||
// item.in(DlTwItem::getTwId, ids)
|
List<DlRepairTitem> items = titemService.list(new LambdaQueryWrapper<DlRepairTitem>().and(item -> {
|
||||||
// .apply("wares_already_count < wares_count");
|
item.eq(DlRepairTitem::getTicketId, respVO.getId())
|
||||||
// }));
|
.eq(DlRepairTitem::getItemType, "02")
|
||||||
// if (CollectionUtil.isNotEmpty(twItems)) {
|
.in(DlRepairTitem::getPartId, waresId);
|
||||||
// // 更新工单子表(主要是把已领料的字段同步给工单配件的数量字段)
|
}));
|
||||||
// // 查询工单子表(三个查询条件,属于那个工单,属于配件类型,属于需要改变的(即申请表的已领取数量小于申请数量的))
|
// 同一个配件可能申请过多次,属于是一个工单配件可能是对应多个申请表配件
|
||||||
// List<String> waresId = twItems.stream().map(DlTwItem::getWaresId).collect(Collectors.toList());
|
List<DlRepairTitem> updateItems = items.stream().map(item -> {
|
||||||
// List<DlRepairTitem> items = titemService.list(new LambdaQueryWrapper<DlRepairTitem>().and(item -> {
|
DlRepairTitem titem = new DlRepairTitem();
|
||||||
// item.eq(DlRepairTitem::getTicketId, respVO.getId())
|
titem.setId(item.getId());
|
||||||
// .eq(DlRepairTitem::getItemType, "02")
|
List<DlTwItem> wares = twItems.stream().filter(i -> i.getWaresId().equals(item.getPartId())).collect(Collectors.toList());
|
||||||
// .in(DlRepairTitem::getPartId, waresId);
|
int sum = wares.stream().mapToInt(DlTwItem::getWaresAlreadyCount).sum();
|
||||||
// }));
|
titem.setItemCount(sum);
|
||||||
// // 同一个配件可能申请过多次,属于是一个工单配件可能是对应多个申请表配件
|
BigDecimal discount = item.getItemDiscount() == null ? BigDecimal.ONE : item.getItemDiscount();
|
||||||
// items.stream().map(item -> {
|
titem.setItemMoney(item.getItemPrice().multiply(BigDecimal.valueOf(sum)).multiply(discount));
|
||||||
// DlRepairTitem titem = new DlRepairTitem();
|
return titem;
|
||||||
// titem.setId(item.getId());
|
}).collect(Collectors.toList());
|
||||||
// List<DlTwItem> wares = twItems.stream().filter(i -> i.getWaresId().equals(item.getPartId())).collect(Collectors.toList());
|
|
||||||
// int sum = wares.stream().mapToInt(DlTwItem::getWaresAlreadyCount).sum();
|
// 更新维修工单子表
|
||||||
//
|
titemService.updateBatchById(updateItems);
|
||||||
// })
|
|
||||||
// }
|
// 重新计算维修工单
|
||||||
|
boolean flag = computeTicket(respVO.getId());
|
||||||
|
if (!flag){
|
||||||
|
throw exception0(500, "系统异常");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 通知服务顾问
|
// 通知服务顾问
|
||||||
DlRepairTickets tickets = baseMapper.selectById(respVO.getId());
|
DlRepairTickets tickets = baseMapper.selectById(respVO.getId());
|
||||||
|
Loading…
Reference in New Issue
Block a user