longz
2026-06-29 9d4cbff7464ebfd7803c2ce53ded49d0f73fe011
backend/src/main/java/com/sinata/appointment/service/LocalUnitManageApplicationService.java
@@ -93,7 +93,7 @@
        validateApprover(req.getApproverType(), req.getApproverDeptIds(), req.getApproverGroupId(), req.getMemberIds());
        MpPassLocalUnit e = new MpPassLocalUnit();
        e.setUnitName(req.getUnitName().trim());
        e.setRemark(trimToNull(req.getRemark()));
        e.setRemark(trimToEmpty(req.getRemark()));
        e.setApproverType(req.getApproverType());
        applyApproverColumns(e, req.getApproverType(), req.getApproverDeptIds(), req.getApproverGroupId());
        mpPassLocalUnitMapper.insert(e);
@@ -113,7 +113,7 @@
        validateApprover(req.getApproverType(), req.getApproverDeptIds(), req.getApproverGroupId(), req.getMemberIds());
        mpPassLocalUnitMemberMapper.deletePhysicalByUnitId(e.getId());
        e.setUnitName(req.getUnitName().trim());
        e.setRemark(trimToNull(req.getRemark()));
        e.setRemark(trimToEmpty(req.getRemark()));
        e.setApproverType(req.getApproverType());
        applyApproverColumns(e, req.getApproverType(), req.getApproverDeptIds(), req.getApproverGroupId());
        mpPassLocalUnitMapper.updateById(e);
@@ -180,6 +180,7 @@
    }
    private void validateEmployees(List<Long> mpUserIds) {
        List<String> disabledNames = new ArrayList<>();
        for (Long id : mpUserIds) {
            if (id == null || id <= 0) {
                continue;
@@ -192,9 +193,25 @@
                throw new BizException(BizErrorCode.AUTH_INVALID_CREDENTIALS, "仅可选择员工: " + id);
            }
            if (u.getStatus() != null && u.getStatus() == 0) {
                throw new BizException(BizErrorCode.AUTH_FORBIDDEN, "员工已禁用: " + id);
                disabledNames.add(firstNonBlank(trimToNull(u.getNickName()), trimToNull(u.getMobile()), String.valueOf(id)));
            }
        }
        if (!disabledNames.isEmpty()) {
            throw new BizException(BizErrorCode.AUTH_FORBIDDEN, "以下员工已禁用,请移除后重试:" + String.join("、", disabledNames));
        }
    }
    @SafeVarargs
    private static String firstNonBlank(String... values) {
        if (values == null) {
            return null;
        }
        for (String value : values) {
            if (StringUtils.hasText(value)) {
                return value.trim();
            }
        }
        return null;
    }
    private void saveMembers(Long unitId, List<Long> memberIds) {
@@ -416,4 +433,8 @@
        String t = s.trim();
        return t.isEmpty() ? null : t;
    }
    private static String trimToEmpty(String s) {
        return s == null ? "" : s.trim();
    }
}