|
|
|
@ -1,23 +1,31 @@
|
|
|
|
package cn.iocoder.yudao.module.mes.service.organization;
|
|
|
|
package cn.iocoder.yudao.module.mes.service.organization;
|
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
|
|
|
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
|
|
|
|
import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
|
|
|
|
import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
|
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
|
import cn.iocoder.yudao.module.mes.controller.admin.organization.vo.OrgClassEnum;
|
|
|
|
import cn.iocoder.yudao.module.mes.controller.admin.organization.vo.OrgClassEnum;
|
|
|
|
import cn.iocoder.yudao.module.mes.controller.admin.organization.vo.OrganizationListReqVO;
|
|
|
|
import cn.iocoder.yudao.module.mes.controller.admin.organization.vo.OrganizationListReqVO;
|
|
|
|
import cn.iocoder.yudao.module.mes.controller.admin.organization.vo.OrganizationRespVO;
|
|
|
|
import cn.iocoder.yudao.module.mes.controller.admin.organization.vo.OrganizationRespVO;
|
|
|
|
import cn.iocoder.yudao.module.mes.controller.admin.organization.vo.OrganizationSaveReqVO;
|
|
|
|
import cn.iocoder.yudao.module.mes.controller.admin.organization.vo.OrganizationSaveReqVO;
|
|
|
|
|
|
|
|
import cn.iocoder.yudao.module.mes.controller.admin.orgworker.vo.OrgWorkerPageReqVO;
|
|
|
|
import cn.iocoder.yudao.module.mes.dal.dataobject.machine.MachineComponentDO;
|
|
|
|
import cn.iocoder.yudao.module.mes.dal.dataobject.machine.MachineComponentDO;
|
|
|
|
import cn.iocoder.yudao.module.mes.dal.dataobject.organization.OrganizationDO;
|
|
|
|
import cn.iocoder.yudao.module.mes.dal.dataobject.organization.OrganizationDO;
|
|
|
|
|
|
|
|
import cn.iocoder.yudao.module.mes.dal.dataobject.orgworker.OrgWorkerDO;
|
|
|
|
import cn.iocoder.yudao.module.mes.dal.mysql.organization.OrganizationMapper;
|
|
|
|
import cn.iocoder.yudao.module.mes.dal.mysql.organization.OrganizationMapper;
|
|
|
|
|
|
|
|
import cn.iocoder.yudao.module.mes.dal.mysql.orgworker.OrgWorkerMapper;
|
|
|
|
import cn.iocoder.yudao.module.mes.dal.redis.no.MesNoRedisDAO;
|
|
|
|
import cn.iocoder.yudao.module.mes.dal.redis.no.MesNoRedisDAO;
|
|
|
|
import cn.iocoder.yudao.module.mes.service.machine.MachineComponentService;
|
|
|
|
import cn.iocoder.yudao.module.mes.service.machine.MachineComponentService;
|
|
|
|
|
|
|
|
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
|
|
|
|
|
|
|
|
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
import java.util.*;
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
|
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
|
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
|
|
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
|
|
|
|
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
|
|
|
|
@ -36,7 +44,12 @@ public class OrganizationServiceImpl implements OrganizationService {
|
|
|
|
@Resource
|
|
|
|
@Resource
|
|
|
|
private OrganizationMapper organizationMapper;
|
|
|
|
private OrganizationMapper organizationMapper;
|
|
|
|
@Resource
|
|
|
|
@Resource
|
|
|
|
|
|
|
|
private OrgWorkerMapper workerMapper;
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
private MesNoRedisDAO noRedisDAO;
|
|
|
|
private MesNoRedisDAO noRedisDAO;
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
|
|
|
private AdminUserApi adminUserApi;
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public Long createOrganization(OrganizationSaveReqVO createReqVO) {
|
|
|
|
public Long createOrganization(OrganizationSaveReqVO createReqVO) {
|
|
|
|
// 校验父组织id的有效性
|
|
|
|
// 校验父组织id的有效性
|
|
|
|
@ -162,6 +175,7 @@ public class OrganizationServiceImpl implements OrganizationService {
|
|
|
|
if (CollUtil.isEmpty(list)) {
|
|
|
|
if (CollUtil.isEmpty(list)) {
|
|
|
|
return Collections.emptyList();
|
|
|
|
return Collections.emptyList();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//关联机台
|
|
|
|
Map<Long, MachineComponentDO> map = machineComponentService.getMap(
|
|
|
|
Map<Long, MachineComponentDO> map = machineComponentService.getMap(
|
|
|
|
convertSet(list, OrganizationDO::getMachineId));
|
|
|
|
convertSet(list, OrganizationDO::getMachineId));
|
|
|
|
|
|
|
|
|
|
|
|
@ -172,6 +186,34 @@ public class OrganizationServiceImpl implements OrganizationService {
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public List<OrganizationRespVO> buildWorkerVOList(List<OrganizationDO> list) {
|
|
|
|
|
|
|
|
if (CollUtil.isEmpty(list)) {
|
|
|
|
|
|
|
|
return Collections.emptyList();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//查找工位今日的派工情况
|
|
|
|
|
|
|
|
List<Long> idList = list.stream().map(OrganizationDO::getId).collect(Collectors.toList());
|
|
|
|
|
|
|
|
OrgWorkerPageReqVO reqVO = new OrgWorkerPageReqVO().setOrgIds(idList).setWorkDate(getDateRange(null));
|
|
|
|
|
|
|
|
List<OrgWorkerDO> orgWorkerList = workerMapper.selectList(reqVO);
|
|
|
|
|
|
|
|
Map<Long,OrgWorkerDO> orgWorkMap = CollectionUtils.convertMap(orgWorkerList, OrgWorkerDO::getOrgId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//查找对应的工人姓名
|
|
|
|
|
|
|
|
List<Long> userIds = orgWorkerList.stream().map(OrgWorkerDO::getWorkerId).collect(Collectors.toList());
|
|
|
|
|
|
|
|
Map<Long,AdminUserRespDTO>userMap = adminUserApi.getUserMap(userIds);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return BeanUtils.toBean(list, OrganizationRespVO.class, item -> {
|
|
|
|
|
|
|
|
MapUtils.findAndThen(orgWorkMap, item.getId(),
|
|
|
|
|
|
|
|
//如果这个org在orgWorkMap里面则根据org的workerId去userMap找到对应的人名
|
|
|
|
|
|
|
|
org -> item.setWorkerUserName(userMap.get(org.getWorkerId()).getNickname()));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public static LocalDateTime[] getDateRange(LocalDateTime base){
|
|
|
|
|
|
|
|
if(base==null)base = LocalDateTime.now();
|
|
|
|
|
|
|
|
LocalDateTime start = LocalDateTime.of(base.getYear(),base.getMonth(),base.getDayOfMonth(),0,0,0);
|
|
|
|
|
|
|
|
LocalDateTime end = LocalDateTime.of(base.getYear(),base.getMonth(),base.getDayOfMonth(),23,59,59);
|
|
|
|
|
|
|
|
return new LocalDateTime[]{start,end};
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public List<OrganizationDO> getList(Collection<Long> ids) {
|
|
|
|
public List<OrganizationDO> getList(Collection<Long> ids) {
|
|
|
|
if (CollUtil.isEmpty(ids)) {
|
|
|
|
if (CollUtil.isEmpty(ids)) {
|
|
|
|
return Collections.emptyList();
|
|
|
|
return Collections.emptyList();
|
|
|
|
|