Browse Source

2026-07-07

RoHS增加材料描述【编辑】按钮
master
fengyuan_yang 3 weeks ago
parent
commit
7052bc04f7
  1. 23
      src/main/java/com/spring/modules/rohs/controller/RohsController.java
  2. 16
      src/main/java/com/spring/modules/rohs/service/impl/RohsServiceImpl.java

23
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<RohsEntity> updateWrapper = new QueryWrapper<>();
updateWrapper.eq("site", rohs.getSite()).eq("reference_no", rohs.getReferenceNo());
rohsService.update(updateEntity, updateWrapper);
return R.ok();
}
/**
* 仅更新材料明细用于编辑页签即时保存
*/

16
src/main/java/com/spring/modules/rohs/service/impl/RohsServiceImpl.java

@ -186,20 +186,8 @@ public class RohsServiceImpl extends ServiceImpl<RohsMapper, RohsEntity> 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<SysUserEntity>().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<OaUserData> oaIds = sysUserDao.selectOaIdByAccount(account);
if (oaIds == null || oaIds.isEmpty()) {
throw new RuntimeException("未获取到域控账号对应的OA人员,域控账号: " + account);
}
fieldValue = oaIds.get(0).getId();
// 人员字段支持多选 ; / , 分割后转换为OA人员ID结果使用逗号拼接
fieldValue = convertUserFieldToOaIds(fieldValue);
}
}

Loading…
Cancel
Save