diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/organization/OrganizationController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/organization/OrganizationController.java index ba7812828d..e4c3b32ad5 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/organization/OrganizationController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/organization/OrganizationController.java @@ -73,7 +73,13 @@ public class OrganizationController { List list = organizationService.getOrganizationList(listReqVO); return success(organizationService.buildVOList(list)); } - + @GetMapping("/listOrgWorker") + @Operation(summary = "获得派工工位列表") + //@PreAuthorize("@ss.hasPermission('mes:organization:query')") + public CommonResult> getListOrgWorker(@Valid OrganizationListReqVO listReqVO) { + List list = organizationService.getOrganizationList(listReqVO); + return success(organizationService.buildWorkerVOList(list)); + } @GetMapping("/export-excel") @Operation(summary = "导出产线工位 Excel") //@PreAuthorize("@ss.hasPermission('mes:organization:export')") diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/organization/vo/OrganizationRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/organization/vo/OrganizationRespVO.java index 2cf29c4e53..e3263b8bd0 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/organization/vo/OrganizationRespVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/organization/vo/OrganizationRespVO.java @@ -32,8 +32,10 @@ public class OrganizationRespVO { private Integer sort; @Schema(description = "负责人", example = "26059") - @ExcelProperty("负责人") private Long workerUserId; + @Schema(description = "负责人", example = "26059") + @ExcelProperty("负责人") + private String workerUserName; @Schema(description = "对应机台id", example = "17654") private Long machineId; diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/organization/OrganizationService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/organization/OrganizationService.java index aceedd2c75..e7ec6d8eb2 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/organization/OrganizationService.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/organization/OrganizationService.java @@ -59,7 +59,8 @@ public interface OrganizationService { List getOrganizationList(OrganizationListReqVO listReqVO); List getOrganizationListNoParent(OrganizationListReqVO listReqVO); List buildVOList(List list); - + //派工页面渲染今天已经派工的工人 + List buildWorkerVOList(List list); List getList(Collection ids); default Map getMap(Collection ids) { if (CollUtil.isEmpty(ids)) { diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/organization/OrganizationServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/organization/OrganizationServiceImpl.java index 63167e550b..aae5ab463e 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/organization/OrganizationServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/organization/OrganizationServiceImpl.java @@ -1,23 +1,31 @@ package cn.iocoder.yudao.module.mes.service.organization; 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.object.BeanUtils; 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.OrganizationRespVO; 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.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.orgworker.OrgWorkerMapper; import cn.iocoder.yudao.module.mes.dal.redis.no.MesNoRedisDAO; 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.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.time.LocalDateTime; 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.util.collection.CollectionUtils.convertSet; @@ -36,7 +44,12 @@ public class OrganizationServiceImpl implements OrganizationService { @Resource private OrganizationMapper organizationMapper; @Resource + private OrgWorkerMapper workerMapper; + @Resource private MesNoRedisDAO noRedisDAO; + @Resource + private AdminUserApi adminUserApi; + @Override public Long createOrganization(OrganizationSaveReqVO createReqVO) { // 校验父组织id的有效性 @@ -162,6 +175,7 @@ public class OrganizationServiceImpl implements OrganizationService { if (CollUtil.isEmpty(list)) { return Collections.emptyList(); } + //关联机台 Map map = machineComponentService.getMap( convertSet(list, OrganizationDO::getMachineId)); @@ -172,6 +186,34 @@ public class OrganizationServiceImpl implements OrganizationService { }); } @Override + public List buildWorkerVOList(List list) { + if (CollUtil.isEmpty(list)) { + return Collections.emptyList(); + } + //查找工位今日的派工情况 + List idList = list.stream().map(OrganizationDO::getId).collect(Collectors.toList()); + OrgWorkerPageReqVO reqVO = new OrgWorkerPageReqVO().setOrgIds(idList).setWorkDate(getDateRange(null)); + List orgWorkerList = workerMapper.selectList(reqVO); + Map orgWorkMap = CollectionUtils.convertMap(orgWorkerList, OrgWorkerDO::getOrgId); + + //查找对应的工人姓名 + List userIds = orgWorkerList.stream().map(OrgWorkerDO::getWorkerId).collect(Collectors.toList()); + MapuserMap = 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 getList(Collection ids) { if (CollUtil.isEmpty(ids)) { return Collections.emptyList();