package com.doumee.service.business.impl; 
 | 
  
 | 
import com.alibaba.druid.sql.visitor.functions.Concat; 
 | 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 
 | 
import com.doumee.core.constants.ResponseStatus; 
 | 
import com.doumee.core.exception.BusinessException; 
 | 
import com.doumee.core.model.LoginUserInfo; 
 | 
import com.doumee.core.model.LoginUserModel; 
 | 
import com.doumee.core.utils.Constants; 
 | 
import com.doumee.core.utils.DateUtil; 
 | 
import com.doumee.dao.business.*; 
 | 
import com.doumee.dao.business.model.*; 
 | 
import com.doumee.dao.business.vo.MonthDataResponse; 
 | 
import com.doumee.dao.business.vo.WorkDeskDataResponse; 
 | 
import com.doumee.dao.system.join.NoticesJoinMapper; 
 | 
import com.doumee.dao.system.model.Notices; 
 | 
import com.doumee.dao.system.model.SystemUser; 
 | 
import com.doumee.service.business.WorkbenchesService; 
 | 
import com.github.xiaoymin.knife4j.core.util.CollectionUtils; 
 | 
import com.github.yulichang.wrapper.MPJLambdaWrapper; 
 | 
import io.jsonwebtoken.lang.Objects; 
 | 
import io.swagger.models.auth.In; 
 | 
import org.apache.tomcat.util.bcel.classfile.Constant; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.stereotype.Service; 
 | 
  
 | 
import java.util.ArrayList; 
 | 
import java.util.Date; 
 | 
import java.util.List; 
 | 
import java.util.stream.Collectors; 
 | 
  
 | 
/** 
 | 
 * 审批模版配置信息表Service实现 
 | 
 * @author 江蹄蹄 
 | 
 * @date 2023/12/28 11:46 
 | 
 */ 
 | 
@Service 
 | 
public class WorkbenchesServiceImpl implements WorkbenchesService { 
 | 
  
 | 
  
 | 
    @Autowired 
 | 
    private YwQuickModelMapper ywQuickModelMapper; 
 | 
  
 | 
    @Autowired 
 | 
    private YwWorkorderMapper ywWorkorderMapper; 
 | 
  
 | 
    @Autowired 
 | 
    private NoticesJoinMapper noticesJoinMapper; 
 | 
  
 | 
    @Autowired 
 | 
    private YwPatrolTaskMapper ywPatrolTaskMapper; 
 | 
  
 | 
    @Autowired 
 | 
    private YwStocktakingMapper ywStocktakingMapper; 
 | 
  
 | 
  
 | 
  
 | 
    @Override 
 | 
    public List<YwQuickModel> getYwQuickList(LoginUserInfo loginUserInfo){ 
 | 
        List<YwQuickModel> ywQuickModelList = ywQuickModelMapper.selectList(new QueryWrapper<YwQuickModel>().lambda() 
 | 
                .eq(YwQuickModel::getIsdeleted, Constants.ZERO) 
 | 
                .eq(YwQuickModel::getUserId,loginUserInfo.getId()) 
 | 
                .orderByAsc(YwQuickModel::getSort) 
 | 
        ); 
 | 
        if(CollectionUtils.isEmpty(ywQuickModelList)){ 
 | 
            ywQuickModelList = ywQuickModelMapper.selectList(new QueryWrapper<YwQuickModel>().lambda() 
 | 
                    .eq(YwQuickModel::getIsdeleted, Constants.ZERO) 
 | 
                    .isNull(YwQuickModel::getUserId) 
 | 
                    .orderByAsc(YwQuickModel::getSort) 
 | 
            ); 
 | 
        } 
 | 
        return ywQuickModelList; 
 | 
    } 
 | 
  
 | 
  
 | 
    @Override 
 | 
    public void updMyYwQuickModel(List<Integer> idList, LoginUserInfo loginUserInfo){ 
 | 
        List<YwQuickModel> ywQuickModelList = ywQuickModelMapper.selectList(new QueryWrapper<YwQuickModel>().lambda() 
 | 
                .eq(YwQuickModel::getIsdeleted, Constants.ZERO) 
 | 
                .isNull(YwQuickModel::getUserId) 
 | 
                .orderByAsc(YwQuickModel::getSort) 
 | 
        ); 
 | 
        if(CollectionUtils.isEmpty(ywQuickModelList) || Constants.equalsInteger(idList.size(),ywQuickModelList.size())){ 
 | 
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"快捷模块配置异常,请联系管理员"); 
 | 
        } 
 | 
        ywQuickModelMapper.delete(new QueryWrapper<YwQuickModel>().lambda().eq(YwQuickModel::getUserId,loginUserInfo.getId())); 
 | 
        List<YwQuickModel> newList = new ArrayList<>(); 
 | 
        for (int i = 0; i < idList.size(); i++) { 
 | 
            Integer id = idList.get(i); 
 | 
            List<YwQuickModel> ywQuickModels = ywQuickModelList.stream().filter(j->Constants.equalsInteger(j.getId(),id)).collect(Collectors.toList()); 
 | 
            if(CollectionUtils.isEmpty(ywQuickModels)){ 
 | 
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"快捷模块配置异常,请联系管理员"); 
 | 
            } 
 | 
            YwQuickModel ywQuickModel = ywQuickModels.get(Constants.ZERO); 
 | 
            ywQuickModel.setId(null); 
 | 
            ywQuickModel.setCreator(loginUserInfo.getId()); 
 | 
            ywQuickModel.setCreateDate(new Date()); 
 | 
            ywQuickModel.setSort(i+1); 
 | 
            ywQuickModel.setUserId(loginUserInfo.getId()); 
 | 
            newList.add(ywQuickModel); 
 | 
        } 
 | 
        ywQuickModelMapper.insert(newList); 
 | 
    } 
 | 
  
 | 
  
 | 
    @Override 
 | 
    public List<MonthDataResponse> getMonthNotices(String yearMonth, LoginUserInfo loginUserInfo){ 
 | 
        List<String> dataList = DateUtil.getDayByMonth(yearMonth); 
 | 
        List<MonthDataResponse> monthDataResponseList = new ArrayList<>(); 
 | 
        List<Notices> noticesList = noticesJoinMapper.selectList(new QueryWrapper<Notices>().lambda() 
 | 
                .eq(Notices::getUserId,loginUserInfo.getId()) 
 | 
                .eq(Notices::getIsdeleted,Constants.ZERO) 
 | 
                .eq(Notices::getStatus,Constants.ZERO) 
 | 
        ); 
 | 
        for (String str:dataList) { 
 | 
            MonthDataResponse  monthDataResponse = new MonthDataResponse(); 
 | 
            monthDataResponse.setWeekMsg(DateUtil.getWeek(DateUtil.StringToDate(str,"yyyy-MM-dd")).getChineseName()); 
 | 
            monthDataResponse.setMonthDate(str); 
 | 
            if(CollectionUtils.isNotEmpty(noticesList)){ 
 | 
                monthDataResponse.setNoticeList(noticesList.stream().filter(i->i.getParam1().equals(str)).collect(Collectors.toList())); 
 | 
            } 
 | 
            monthDataResponseList.add(monthDataResponse); 
 | 
        } 
 | 
        return monthDataResponseList; 
 | 
    } 
 | 
  
 | 
  
 | 
  
 | 
    @Override 
 | 
    public WorkDeskDataResponse workDeskData(LoginUserInfo loginUserInfo){ 
 | 
        WorkDeskDataResponse workDeskDataResponse = new WorkDeskDataResponse(); 
 | 
        workDeskDataResponse.setWaitDealWorkOrderSize(Constants.ZERO); 
 | 
        workDeskDataResponse.setTimeOutSize(Constants.ZERO); 
 | 
        workDeskDataResponse.setStocktakingSize(Constants.ZERO); 
 | 
        workDeskDataResponse.setWaitTaskSize(Constants.ZERO); 
 | 
  
 | 
        List<YwPatrolTask> ywPatrolTaskList = ywPatrolTaskMapper.selectJoinList(YwPatrolTask.class,new MPJLambdaWrapper<YwPatrolTask>() 
 | 
                .selectAll(YwPatrolTask.class) 
 | 
                .selectAs(YwPatrolScheme::getCode,YwPatrolTask::getPlanCode) 
 | 
                .selectAs(YwPatrolScheme::getTitle,YwPatrolTask::getPlanTitle) 
 | 
                .leftJoin(YwPatrolScheme.class,YwPatrolScheme::getId,YwPatrolTask::getSchemeId) 
 | 
                .eq(YwPatrolTask::getIsdeleted, Constants.ZERO) 
 | 
                .eq(YwPatrolScheme::getStatus, Constants.ZERO) 
 | 
                .in(YwPatrolTask::getStatus, Constants.ZERO, Constants.ONE) 
 | 
                .le(YwPatrolTask::getEndDate,DateUtil.getCurrDateTime()) 
 | 
                .apply(" find_in_set( "+loginUserInfo.getId()+" , t1.USER_IDS ) ") 
 | 
        ); 
 | 
        Integer waitTaskSize = ywPatrolTaskList.size(); 
 | 
        Integer timeOutSize = Constants.ZERO; 
 | 
        if(CollectionUtils.isNotEmpty(ywPatrolTaskList)){ 
 | 
            timeOutSize = ywPatrolTaskList.stream().filter(i->(Constants.equalsInteger(i.getStatus(),Constants.ZERO) || Constants.equalsInteger(i.getStatus(),Constants.ONE) ) && 
 | 
                    i.getEndDate().getTime()<System.currentTimeMillis()).collect(Collectors.toList()).size(); 
 | 
        } 
 | 
  
 | 
        long waitDealWorkOrderSize = ywWorkorderMapper.selectCount(new QueryWrapper<YwWorkorder>().lambda() 
 | 
                .eq(YwWorkorder::getIsdeleted, Constants.ZERO) 
 | 
                .eq(YwWorkorder::getStatus,Constants.ZERO) 
 | 
                .eq(YwWorkorder::getDealStatus,Constants.ONE) 
 | 
                .eq(YwWorkorder::getDealUserId,loginUserInfo.getId()) 
 | 
        ); 
 | 
  
 | 
        long stocktakingSize = ywStocktakingMapper.selectCount(new QueryWrapper<YwStocktaking>().lambda() 
 | 
                .eq(YwStocktaking::getIsdeleted,Constants.ZERO) 
 | 
                .eq(YwStocktaking::getUserId,loginUserInfo.getId()) 
 | 
                .in(YwStocktaking::getStatus, Constants.ZERO, Constants.ONE) 
 | 
        ); 
 | 
        workDeskDataResponse.setTimeOutSize(timeOutSize); 
 | 
        workDeskDataResponse.setWaitTaskSize(waitTaskSize); 
 | 
        workDeskDataResponse.setWaitDealWorkOrderSize(waitDealWorkOrderSize); 
 | 
        workDeskDataResponse.setStocktakingSize(stocktakingSize); 
 | 
        return workDeskDataResponse; 
 | 
    } 
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
} 
 |