From dd833b3b0d70523c4de09bdb7e706f6bfdf81e6c Mon Sep 17 00:00:00 2001 From: chenshuichuan <1154693969@qq.com> Date: Sun, 30 Jun 2024 23:40:57 +0800 Subject: [PATCH] fix org Worker --- .../admin/orgworker/OrgWorkerController.java | 6 ++++- .../admin/orgworker/vo/OrgWorkerRespVO.java | 4 +++ .../orgworker/vo/OrgWorkerSaveReqVO.java | 12 ++++++--- .../admin/workteam/WorkTeamController.java | 10 +++++-- .../dal/mysql/orgworker/OrgWorkerMapper.java | 14 ++++++++-- .../orgworker/OrgWorkerServiceImpl.java | 23 +++++++++++++++- .../mes/service/workteam/WorkTeamService.java | 5 ++-- .../service/workteam/WorkTeamServiceImpl.java | 26 +++++++++++++++---- 8 files changed, 83 insertions(+), 17 deletions(-) diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/orgworker/OrgWorkerController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/orgworker/OrgWorkerController.java index 75aa0e10fe..10482cd047 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/orgworker/OrgWorkerController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/orgworker/OrgWorkerController.java @@ -42,7 +42,11 @@ public class OrgWorkerController { public CommonResult createOrgWorker(@Valid @RequestBody OrgWorkerSaveReqVO createReqVO) { return success(orgWorkerService.createOrgWorker(createReqVO)); } - + @GetMapping("/createWorker") + @Operation(summary = "获得工位安排分页") + public CommonResult createWorker(@Valid OrgWorkerSaveReqVO createReqVO) { + return success(orgWorkerService.createOrgWorker(createReqVO)); + } @PutMapping("/update") @Operation(summary = "更新工位安排") @PreAuthorize("@ss.hasPermission('mes:org-worker:update')") diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/orgworker/vo/OrgWorkerRespVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/orgworker/vo/OrgWorkerRespVO.java index bfdbb318cc..2a60ee84ed 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/orgworker/vo/OrgWorkerRespVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/orgworker/vo/OrgWorkerRespVO.java @@ -47,4 +47,8 @@ public class OrgWorkerRespVO { @ExcelProperty("创建时间") private LocalDateTime createTime; + @Schema(description = "操作人", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("操作人") + private String creator; + } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/orgworker/vo/OrgWorkerSaveReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/orgworker/vo/OrgWorkerSaveReqVO.java index f6a8b435fc..cf5d42c7a5 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/orgworker/vo/OrgWorkerSaveReqVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/orgworker/vo/OrgWorkerSaveReqVO.java @@ -1,12 +1,14 @@ package cn.iocoder.yudao.module.mes.controller.admin.orgworker.vo; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import javax.validation.constraints.*; +import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; import java.time.LocalDateTime; +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + @Schema(description = "管理后台 - 工位安排新增/修改 Request VO") @Data public class OrgWorkerSaveReqVO { @@ -19,8 +21,10 @@ public class OrgWorkerSaveReqVO { private Long orgId; @Schema(description = "工作日期", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "工作日期不能为空") private LocalDateTime workDate; + @Schema(description = "日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] planDates; @Schema(description = "班别", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @NotNull(message = "班别不能为空") diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/workteam/WorkTeamController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/workteam/WorkTeamController.java index 333d87a34f..c0b9d81a67 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/workteam/WorkTeamController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/workteam/WorkTeamController.java @@ -139,7 +139,13 @@ public class WorkTeamController { @GetMapping("/work-team-detail/getUserList") @Operation(summary = "获得班组成员") @Parameter(name = "processType", description = "班组类型", required = true) - public CommonResult> getUserList(@RequestParam("processType") String processType) { - return success(workTeamService.getUserList(processType)); + public CommonResult> getUserList(@RequestParam("processType") String processType,String groupType) { + return success(workTeamService.getUserList(processType,groupType)); + } + @GetMapping("/work-team-detail/getUserList2") + @Operation(summary = "获得班组成员") + @Parameter(name = "processType", description = "班组类型", required = true) + public CommonResult> getUserList2(@RequestParam("orgId") Long orgId,String groupType) { + return success(workTeamService.getUserList2(orgId,groupType)); } } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/orgworker/OrgWorkerMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/orgworker/OrgWorkerMapper.java index 7aaf427b67..e1819c9b70 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/orgworker/OrgWorkerMapper.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/orgworker/OrgWorkerMapper.java @@ -7,6 +7,8 @@ import cn.iocoder.yudao.module.mes.controller.admin.orgworker.vo.OrgWorkerPageRe import cn.iocoder.yudao.module.mes.dal.dataobject.orgworker.OrgWorkerDO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 工位安排 Mapper * @@ -24,7 +26,15 @@ public interface OrgWorkerMapper extends BaseMapperX { .eqIfPresent(OrgWorkerDO::getReportId, reqVO.getReportId()) .betweenIfPresent(OrgWorkerDO::getCreateTime, reqVO.getCreateTime()) .in(reqVO.getOrgIds()!=null&&reqVO.getOrgIds().size()>0,OrgWorkerDO::getOrgId, reqVO.getOrgIds()) - .orderByDesc(OrgWorkerDO::getId)); + .orderByDesc(OrgWorkerDO::getWorkDate)); + } + default List selectList(OrgWorkerPageReqVO reqVO) { + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(OrgWorkerDO::getWorkerId, reqVO.getWorkerId()) + .eqIfPresent(OrgWorkerDO::getOrgId, reqVO.getOrgId()) + .eqIfPresent(OrgWorkerDO::getGroupType, reqVO.getGroupType()) + .betweenIfPresent(OrgWorkerDO::getWorkDate, reqVO.getWorkDate()) + .betweenIfPresent(OrgWorkerDO::getCreateTime, reqVO.getCreateTime()) + .orderByAsc(OrgWorkerDO::getId)); } - } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/orgworker/OrgWorkerServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/orgworker/OrgWorkerServiceImpl.java index cb49c4ded3..79c9d17aa8 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/orgworker/OrgWorkerServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/orgworker/OrgWorkerServiceImpl.java @@ -19,6 +19,7 @@ import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.time.LocalDateTime; import java.util.Collections; import java.util.List; import java.util.Map; @@ -44,7 +45,24 @@ public class OrgWorkerServiceImpl implements OrgWorkerService { public Long createOrgWorker(OrgWorkerSaveReqVO createReqVO) { // 插入 OrgWorkerDO orgWorker = BeanUtils.toBean(createReqVO, OrgWorkerDO.class); - orgWorkerMapper.insert(orgWorker); + //多个日期 + if(createReqVO.getPlanDates()!=null && createReqVO.getPlanDates().length>0){ + //校验同工位、同班别、同日期是否已经存在,存在则失败()不保存 + OrgWorkerPageReqVO reqVO = new OrgWorkerPageReqVO() + .setOrgId(createReqVO.getOrgId()) + .setGroupType(createReqVO.getGroupType()); + for (LocalDateTime date : createReqVO.getPlanDates()) { + LocalDateTime[] dates = {date,date}; + reqVO.setWorkDate(dates); + List list = orgWorkerMapper.selectList(reqVO); + if(list==null || list.size()==0){ + orgWorker.setWorkDate(date); + orgWorker.setId(null); + orgWorkerMapper.insert(orgWorker); + } + } + } + else orgWorkerMapper.insert(orgWorker); // 返回 return orgWorker.getId(); } @@ -111,6 +129,9 @@ public class OrgWorkerServiceImpl implements OrgWorkerService { org -> item.setOrgName(org.getName())); MapUtils.findAndThen(userMap, item.getWorkerId(), user -> item.setWorkerName(user.getNickname())); + + MapUtils.findAndThen(userMap, Long.valueOf(item.getCreator()), + user -> item.setCreator(user.getNickname())); }); } } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/workteam/WorkTeamService.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/workteam/WorkTeamService.java index e6e51fa982..9d0b065a87 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/workteam/WorkTeamService.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/workteam/WorkTeamService.java @@ -98,7 +98,7 @@ public interface WorkTeamService { * @return 班组成员 */ WorkTeamDetailDO getWorkTeamDetail(Long id); - List getProcessUsers(String processType); + List getProcessUsers(String processType, String groupType); /** * 通过用户 ID 查询用户们 @@ -106,5 +106,6 @@ public interface WorkTeamService { * @param ids 用户 ID 们 * @return 用户对象信息 */ - List getUserList(String processType); + List getUserList(String processType, String groupType); + List getUserList2(Long orgId, String groupType); } \ No newline at end of file diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/workteam/WorkTeamServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/workteam/WorkTeamServiceImpl.java index 7bc045f5ed..4429f64a48 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/workteam/WorkTeamServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/workteam/WorkTeamServiceImpl.java @@ -7,12 +7,15 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; 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.workteam.vo.*; +import cn.iocoder.yudao.module.mes.dal.dataobject.organization.OrganizationDO; import cn.iocoder.yudao.module.mes.dal.dataobject.workteam.WorkTeamDO; import cn.iocoder.yudao.module.mes.dal.dataobject.workteam.WorkTeamDetailDO; import cn.iocoder.yudao.module.mes.dal.mysql.workteam.WorkTeamDetailMapper; import cn.iocoder.yudao.module.mes.dal.mysql.workteam.WorkTeamMapper; +import cn.iocoder.yudao.module.mes.service.organization.OrganizationService; 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.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; @@ -39,7 +42,8 @@ public class WorkTeamServiceImpl implements WorkTeamService { private WorkTeamMapper workTeamMapper; @Resource private WorkTeamDetailMapper workTeamDetailMapper; - + @Resource + private OrganizationService organizationService; @Override public Long createWorkTeam(WorkTeamSaveReqVO createReqVO) { // 插入 @@ -199,8 +203,8 @@ public class WorkTeamServiceImpl implements WorkTeamService { //获取某类型工序的所有成员 @Override - public List getProcessUsers(String processType) { - WorkTeamDO teamDO = new WorkTeamDO().setTeamType(processType).setIsEnable(true); + public List getProcessUsers(String processType, String groupType) { + WorkTeamDO teamDO = new WorkTeamDO().setTeamType(processType).setGroupType(groupType).setIsEnable(true); List list = workTeamMapper.selectBy(teamDO); if ( list!= null && list.size() > 0) { List idList = list.stream() // 将list转换为stream @@ -218,8 +222,20 @@ public class WorkTeamServiceImpl implements WorkTeamService { * @return 用户对象信息 */ @Override - public List getUserList(String processType){ - List list = getProcessUsers( processType); + public List getUserList(String processType , String groupType){ + List list = getProcessUsers( processType, groupType); + List idList = list.stream() // 将list转换为stream + .map(WorkTeamDetailDO::getUserId) + .collect(Collectors.toList()); + return adminUserApi.getUserList(idList); + } + @Override + public List getUserList2(Long orgId , String groupType){ + if(orgId == null)return null; + OrganizationDO organizationDO = organizationService.getOrganization(orgId); + if(organizationDO==null || StringUtils.isEmpty(organizationDO.getOrgType()))return null; + + List list = getProcessUsers( organizationDO.getOrgType(), groupType); List idList = list.stream() // 将list转换为stream .map(WorkTeamDetailDO::getUserId) .collect(Collectors.toList());