jiangping
2025-06-06 a2299a6d4a6f99e9c11132138f5d3e9ec68f03ea
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WorkbenchesServiceImpl.java
@@ -2,20 +2,28 @@
import com.alibaba.druid.sql.visitor.functions.Concat;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.doumee.biz.system.SystemDictDataBiz;
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.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.dao.business.ApproveParamMapper;
import com.doumee.dao.business.PlatformLogMapper;
import com.doumee.dao.business.YwQuickModelMapper;
import com.doumee.dao.business.model.YwQuickModel;
import com.doumee.core.utils.Utils;
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 io.jsonwebtoken.lang.Objects;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import io.swagger.models.auth.In;
import org.apache.tomcat.util.bcel.classfile.Constant;
import org.springframework.beans.factory.annotation.Autowired;
@@ -24,6 +32,7 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
@@ -38,21 +47,44 @@
    @Autowired
    private YwQuickModelMapper ywQuickModelMapper;
    @Autowired
    private YwWorkorderMapper ywWorkorderMapper;
    @Autowired
    private NoticesJoinMapper noticesJoinMapper;
    @Autowired
    private YwPatrolTaskMapper ywPatrolTaskMapper;
    @Autowired
    private YwStocktakingMapper ywStocktakingMapper;
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @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())
                .isNull(YwQuickModel::getUserId)
                .orderByAsc(YwQuickModel::getSort)
        );
        if(CollectionUtils.isEmpty(ywQuickModelList)){
            ywQuickModelList = ywQuickModelMapper.selectList(new QueryWrapper<YwQuickModel>().lambda()
        if(Objects.nonNull(loginUserInfo)){
            List<YwQuickModel> userModelList = ywQuickModelMapper.selectList(new QueryWrapper<YwQuickModel>().lambda()
                    .eq(YwQuickModel::getIsdeleted, Constants.ZERO)
                    .isNull(YwQuickModel::getUserId)
                    .eq(YwQuickModel::getUserId,loginUserInfo.getId())
                    .orderByAsc(YwQuickModel::getSort)
            );
            if(CollectionUtils.isNotEmpty(userModelList)){
                ywQuickModelList = userModelList;
            }
        }
        String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
                +systemDictDataBiz.queryByCode(Constants.FTP,Constants.YW_QUICK_MODEL).getCode();
        for (YwQuickModel ywQuickModel:ywQuickModelList) {
            ywQuickModel.setIcoPath(path + ywQuickModel.getIcoPath());
        }
        return ywQuickModelList;
    }
@@ -65,7 +97,7 @@
                .isNull(YwQuickModel::getUserId)
                .orderByAsc(YwQuickModel::getSort)
        );
        if(CollectionUtils.isEmpty(ywQuickModelList) || Constants.equalsInteger(idList.size(),ywQuickModelList.size())){
        if(CollectionUtils.isEmpty(ywQuickModelList) ){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"快捷模块配置异常,请联系管理员");
        }
        ywQuickModelMapper.delete(new QueryWrapper<YwQuickModel>().lambda().eq(YwQuickModel::getUserId,loginUserInfo.getId()));
@@ -92,24 +124,90 @@
    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)
                .like(Notices::getParam1,yearMonth)
                .ne(Notices::getObjType,Constants.TWO)
        );
        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;
    }
    @Override
    public PageData<Notices> getMyNotices(PageWrap<Notices> pageWrap,LoginUserInfo loginUserInfo) {
        IPage<Notices> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        MPJLambdaWrapper<Notices> queryWrapper = new MPJLambdaWrapper<>();
        Notices model = pageWrap.getModel();
        Utils.MP.blankToNull(pageWrap.getModel());
        queryWrapper.selectAll(Notices.class)
                .eq(Notices::getUserId,loginUserInfo.getId())
                .eq(Notices::getIsdeleted,Constants.ZERO)
                .eq(Objects.nonNull(model)&&Objects.nonNull(model.getStatus()),Notices::getStatus,model.getStatus())
                .apply(" param1 <= CURDATE() ")
                .orderByAsc(Notices::getReaded)
                .orderByDesc(Notices::getId);
        PageData<Notices> pageData = PageData.from(noticesJoinMapper.selectJoinPage(page,Notices.class, queryWrapper));
        return pageData;
    }