From d465f6537bda4c5b3844a15b73badf704f44c9a1 Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期一, 07 四月 2025 16:01:16 +0800 Subject: [PATCH] art: 设备管理-用户选择-根据岗位选择用户 --- lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/vo/UserSelector.java | 18 ++++++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamWeekMaintenanceOrderController.java | 15 ++++- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java | 47 +++++++++++++++ lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java | 10 +++ lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java | 22 +++++++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrder.java | 3 + lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderService.java | 7 ++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamUserSelectController.java | 51 +++++++++++++++++ 8 files changed, 168 insertions(+), 5 deletions(-) diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamUserSelectController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamUserSelectController.java new file mode 100644 index 0000000..4367c5d --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamUserSelectController.java @@ -0,0 +1,51 @@ +package org.jeecg.modules.eam.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.eam.entity.EamEquipment; +import org.jeecg.modules.eam.service.IEamEquipmentService; +import org.jeecg.modules.system.service.ISysUserService; +import org.jeecg.modules.system.vo.UserSelector; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @Description: 鐢ㄦ埛閫夋嫨 + * @Author: jeecg-boot + * @Date: 2025-03-19 + * @Version: V1.0 + */ +@Slf4j +@Api(tags = "鐢ㄦ埛閫夋嫨") +@RestController +@RequestMapping("/eam/user_select") +public class EamUserSelectController { + + @Autowired + private ISysUserService sysUserService; + @Autowired + private IEamEquipmentService eamEquipmentService; + + @ApiOperation(value = "鐢ㄦ埛閫夋嫨-閫夋嫨鎿嶄綔浜哄垪琛ㄦ煡璇�", notes = "鐢ㄦ埛閫夋嫨-閫夋嫨鎿嶄綔浜哄垪琛ㄦ煡璇�") + @GetMapping(value = "/list") + public Result<?> selectOperatorList(@RequestParam(required = false, value = "equipmentId") String equipmentId, + @RequestParam("positionCode") String positionCode) { + String productionId = null; + if (StringUtils.isNotBlank(equipmentId)) { + EamEquipment equipment = eamEquipmentService.getById(equipmentId); + if(equipment != null) { + productionId = equipment.getOrgId(); + } + } + List<UserSelector> list = sysUserService.selectOperatorList(equipmentId, productionId, positionCode); + return Result.ok(list); + } +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamWeekMaintenanceOrderController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamWeekMaintenanceOrderController.java index da13f7c..51ee76c 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamWeekMaintenanceOrderController.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamWeekMaintenanceOrderController.java @@ -86,14 +86,23 @@ /** * 缂栬緫 * - * @param eamWeekMaintenanceOrder + * @param request * @return */ @AutoLog(value = "鍛ㄤ繚宸ュ崟-缂栬緫") @ApiOperation(value = "鍛ㄤ繚宸ュ崟-缂栬緫", notes = "鍛ㄤ繚宸ュ崟-缂栬緫") @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) - public Result<?> edit(@RequestBody EamWeekMaintenanceOrder eamWeekMaintenanceOrder) { - eamWeekMaintenanceOrderService.updateById(eamWeekMaintenanceOrder); + public Result<?> edit(@RequestBody EamWeekMaintenanceRequest request) { + if (request == null) { + return Result.error("娣诲姞鐨勫璞′笉鑳戒负绌猴紒"); + } + if (CollectionUtil.isEmpty(request.getTableDetailList())) { + return Result.error("淇濆吇椤逛笉鑳戒负绌猴紒"); + } + boolean b = eamWeekMaintenanceOrderService.editWeekMaintenance(request); + if (!b) { + return Result.error("缂栬緫澶辫触锛�"); + } return Result.OK("缂栬緫鎴愬姛!"); } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrder.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrder.java index 56c964e..2a8b2a6 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrder.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrder.java @@ -1,6 +1,7 @@ package org.jeecg.modules.eam.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; @@ -104,6 +105,8 @@ //鍒楄〃灞曠ず + @TableField(exist = false) private String equipmentCode; + @TableField(exist = false) private String equipmentName; } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderService.java index 9210ebc..b2c6d8e 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderService.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderService.java @@ -29,4 +29,11 @@ * @return */ IPage<EamWeekMaintenanceOrder> queryPageList(Page<EamWeekMaintenanceOrder> page, EamWeekMaintenanceQuery query); + + /** + * 鍛ㄤ繚缂栬緫鐘舵�� + * @param request + * @return + */ + boolean editWeekMaintenance(EamWeekMaintenanceRequest request); } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java index 4cc12f2..b8e533c 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderServiceImpl.java @@ -9,12 +9,13 @@ import org.apache.shiro.SecurityUtils; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.constant.DataBaseConstant; +import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.eam.constant.MaintenanceStatusEnum; import org.jeecg.modules.eam.constant.OrderCreationMethodEnum; -import org.jeecg.modules.eam.entity.EamEquipment; import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrder; +import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrderDetail; import org.jeecg.modules.eam.mapper.EamWeekMaintenanceOrderMapper; import org.jeecg.modules.eam.request.EamWeekMaintenanceQuery; import org.jeecg.modules.eam.request.EamWeekMaintenanceRequest; @@ -25,9 +26,10 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.Arrays; -import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * @Description: 鍛ㄤ繚宸ュ崟 @@ -121,4 +123,45 @@ return eamWeekMaintenanceOrderMapper.queryPageList(page, queryWrapper); } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean editWeekMaintenance(EamWeekMaintenanceRequest request) { + EamWeekMaintenanceOrder entity = eamWeekMaintenanceOrderMapper.selectById(request.getId()); + if(entity == null){ + throw new JeecgBootException("缂栬緫鐨勬暟鎹凡鍒犻櫎锛岃鍒锋柊閲嶈瘯锛�"); + } + if(!MaintenanceStatusEnum.WAIT_MAINTENANCE.name().equals(entity.getMaintenanceStatus())){ + throw new JeecgBootException("鍙湁寰呬繚鍏荤姸鎬佺殑鏁版嵁鎵嶅彲缂栬緫锛�"); + } + entity.setMaintenanceDate(request.getMaintenanceDate()); + entity.setOperator(request.getOperator()); + entity.setRemark(request.getRemark()); + + eamWeekMaintenanceOrderMapper.updateById(entity); + //澶勭悊璇︽儏 + if(CollectionUtil.isNotEmpty(request.getTableDetailList())) { + List<EamWeekMaintenanceOrderDetail> addList = new ArrayList<>(); + List<EamWeekMaintenanceOrderDetail> updateList = new ArrayList<>(); + request.getTableDetailList().forEach(tableDetail -> { + tableDetail.setOrderId(entity.getId()); + if(tableDetail.getId() == null){ + addList.add(tableDetail); + }else { + updateList.add(tableDetail); + } + }); + if(CollectionUtil.isNotEmpty(addList)){ + eamWeekMaintenanceOrderDetailService.saveBatch(addList); + } + if(CollectionUtil.isNotEmpty(updateList)){ + eamWeekMaintenanceOrderDetailService.updateBatchById(updateList); + } + } + if(CollectionUtil.isNotEmpty(request.getRemoveDetailList())) { + List<String> ids = request.getRemoveDetailList().stream().map(EamWeekMaintenanceOrderDetail::getId).collect(Collectors.toList()); + eamWeekMaintenanceOrderDetailService.removeBatchByIds(ids); + } + return true; + } } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java index 751395e..127d34d 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java @@ -10,6 +10,7 @@ import org.jeecg.modules.system.entity.SysRoleIndex; import org.jeecg.modules.system.entity.SysUser; import org.jeecg.modules.system.model.SysUserSysDepartModel; +import org.jeecg.modules.system.vo.UserSelector; import org.springframework.transaction.annotation.Transactional; import java.util.Collection; @@ -320,4 +321,13 @@ List<String> getUserByRoleCode(String roleCode); List<SysUser> getEquipmentAdmin(String roleCode, String equipmentId); + + /** + * 閫夋嫨鐢ㄦ埛 + * @param equipmentId 閫夋嫨鐨勮澶嘔D + * @param productionId 閫夋嫨鐨勮溅闂碔D + * @param positionCode 宀椾綅缂栧彿 + * @return + */ + List<UserSelector> selectOperatorList(String equipmentId, String productionId, String positionCode); } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java index 1434c07..55e48fa 100644 --- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.constant.CacheConstant; import org.jeecg.common.constant.CommonConstant; @@ -26,6 +27,7 @@ import org.jeecg.modules.system.service.ISysUserService; import org.jeecg.modules.system.vo.MdcUserProVo; import org.jeecg.modules.system.vo.SysUserDepVo; +import org.jeecg.modules.system.vo.UserSelector; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheEvict; @@ -742,4 +744,24 @@ public List<SysUser> getEquipmentAdmin(String roleCode, String equipmentId) { return this.baseMapper.getEquipmentAdmin(roleCode, equipmentId); } + + @Override + public List<UserSelector> selectOperatorList(String equipmentId, String productionId, String positionCode) { + LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysUser::getPost, positionCode); + if(StringUtils.isNotBlank(equipmentId)) { + queryWrapper.isNull(SysUser::getEquipmentIds); + queryWrapper.or().eq(SysUser::getEquipmentIds, ""); + queryWrapper.or().like(SysUser::getEquipmentIds, equipmentId); + } + if(StringUtils.isNotBlank(productionId)) { + queryWrapper.exists("select 1 from mdc_user_production t where t.user_id=id and t.pro_id={0}", productionId); + } + queryWrapper.eq(SysUser::getDelFlag, CommonConstant.DEL_FLAG_0); + queryWrapper.eq(SysUser::getStatus, CommonConstant.DEL_FLAG_1); + queryWrapper.orderByDesc(SysUser::getId); + List<SysUser> sysUsers = userMapper.selectList(queryWrapper); + List<UserSelector> collect = sysUsers.stream().map(user -> new UserSelector(user.getId(), user.getUsername(), user.getRealname())).collect(Collectors.toList()); + return collect; + } } diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/vo/UserSelector.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/vo/UserSelector.java new file mode 100644 index 0000000..6dad32a --- /dev/null +++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/vo/UserSelector.java @@ -0,0 +1,18 @@ +package org.jeecg.modules.system.vo; + +import lombok.Data; + +@Data +public class UserSelector { + private String id; + private String username; + private String realname; + + public UserSelector() {} + + public UserSelector(String id, String username, String realname) { + this.id = id; + this.username = username; + this.realname = realname; + } +} -- Gitblit v1.9.3