package com.yuanchu.mom.service.impl; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yuanchu.mom.common.GetLook; import com.yuanchu.mom.common.PrintChina; import com.yuanchu.mom.mapper.InsOrderMapper; import com.yuanchu.mom.mapper.InsOrderUserMapper; import com.yuanchu.mom.pojo.InsOrder; import com.yuanchu.mom.pojo.InsOrderUser; import com.yuanchu.mom.service.InsOrderPlanService; import com.yuanchu.mom.utils.QueryWrappers; import com.yuanchu.mom.vo.InsOrderPlanVO; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * 检验任务-业务实现层 */ @Service @AllArgsConstructor public class InsOrderPlanServiceImpl extends ServiceImpl implements InsOrderPlanService { private InsOrderMapper insOrderMapper; private InsOrderUserMapper insOrderUserMapper; private GetLook getLook; @Override public Map selectInsOrderPlanList(Page page, InsOrder insOrder) { //初始化page Page insOrderPage = new Page<>(); insOrderPage.setCurrent(page.getCurrent()); insOrderPage.setPages(page.getPages()); insOrderPage.setSize(page.getSize()); Map map = new HashMap<>(); //获取表头 map.put("head", PrintChina.printChina(InsOrderPlanVO.class)); Map map1 = getLook.selectPowerByMethodAndUserId("selectInsOrderPlanList"); Integer userId = map1.get("userId"); if (map1.get("look") == 1) insOrder.setCreateUser(userId); //查询 List orderPage = insOrderMapper.selectList(QueryWrappers.queryWrappers(insOrder)); List filterData = orderPage.stream().filter(order -> { List insOrderUsers = insOrderUserMapper.selectList(Wrappers.lambdaQuery() .eq(InsOrderUser::getInsOrderId, order.getId())); boolean isZero = insOrderUsers.stream().noneMatch(iou -> iou.getUserId().equals(userId)); return insOrderUsers.isEmpty() || !isZero; }).collect(Collectors.toList()); insOrderPage.setRecords(filterData); insOrderPage.setTotal(filterData.size()); map.put("body", insOrderPage); return map; } }