diff --git a/src/main/java/com/spring/modules/rohs/controller/RohsController.java b/src/main/java/com/spring/modules/rohs/controller/RohsController.java index 7d8196f3..a21c73d1 100644 --- a/src/main/java/com/spring/modules/rohs/controller/RohsController.java +++ b/src/main/java/com/spring/modules/rohs/controller/RohsController.java @@ -207,6 +207,29 @@ public class RohsController { return R.ok(); } + /** + * 仅更新材料描述(不受流程节点和状态限制) + */ + @PostMapping("/updateMaterialDesc") + @Transactional + public R updateMaterialDesc(@RequestBody RohsEntity rohs) { + if (StringUtils.isBlank(rohs.getSite()) || StringUtils.isBlank(rohs.getReferenceNo())) { + return R.error("工厂(site)和序列号(referenceNo)不能为空"); + } + RohsEntity exists = rohsService.getDetail(rohs.getSite(), rohs.getReferenceNo()); + if (exists == null) { + return R.error("未找到对应RoHs单据"); + } + RohsEntity updateEntity = new RohsEntity(); + updateEntity.setMaterialDesc(StringUtils.defaultString(rohs.getMaterialDesc())); + updateEntity.setUpdateDate(new Date()); + updateEntity.setUpdateBy(getCurrentUserName()); + QueryWrapper updateWrapper = new QueryWrapper<>(); + updateWrapper.eq("site", rohs.getSite()).eq("reference_no", rohs.getReferenceNo()); + rohsService.update(updateEntity, updateWrapper); + return R.ok(); + } + /** * 仅更新材料明细(用于编辑页签即时保存) */ diff --git a/src/main/java/com/spring/modules/rohs/service/impl/RohsServiceImpl.java b/src/main/java/com/spring/modules/rohs/service/impl/RohsServiceImpl.java index c2aa6490..352f7c2c 100644 --- a/src/main/java/com/spring/modules/rohs/service/impl/RohsServiceImpl.java +++ b/src/main/java/com/spring/modules/rohs/service/impl/RohsServiceImpl.java @@ -186,20 +186,8 @@ public class RohsServiceImpl extends ServiceImpl impleme Object valueObj = getPropertyValue(rohs, nodeDetail.getPlmField()); fieldValue = convertFieldValue(valueObj); if (StringUtils.isNotBlank(fieldValue) && "A".equals(nodeDetail.getFieldType())) { - // 人员字段:PLM用户 -> 域控账号 -> OA人员ID - SysUserEntity sysUser = sysUserDao.selectOne(new QueryWrapper().eq("username", fieldValue)); - if (sysUser == null) { - throw new RuntimeException("未找到PLM用户信息,用户编码: " + fieldValue); - } - String account = sysUser.getDomainControlAccount(); - if (StringUtils.isBlank(account)) { - throw new RuntimeException("未获取到PLM人员域控账号,用户编码: " + fieldValue); - } - List oaIds = sysUserDao.selectOaIdByAccount(account); - if (oaIds == null || oaIds.isEmpty()) { - throw new RuntimeException("未获取到域控账号对应的OA人员,域控账号: " + account); - } - fieldValue = oaIds.get(0).getId(); + // 人员字段(支持多选):按 ; / , 分割后转换为OA人员ID,结果使用逗号拼接 + fieldValue = convertUserFieldToOaIds(fieldValue); } }