package com.doumee.service.business.impl;
|
|
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.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 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;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Objects;
|
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;
|
|
@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)
|
.isNull(YwQuickModel::getUserId)
|
.orderByAsc(YwQuickModel::getSort)
|
);
|
if(Objects.nonNull(loginUserInfo)){
|
List<YwQuickModel> userModelList = ywQuickModelMapper.selectList(new QueryWrapper<YwQuickModel>().lambda()
|
.eq(YwQuickModel::getIsdeleted, Constants.ZERO)
|
.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;
|
}
|
|
|
@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) ){
|
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)
|
.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;
|
}
|
|
|
|
}
|