diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/personalcost/PersonalCostServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/personalcost/PersonalCostServiceImpl.java index c691efc..589bbbb 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/personalcost/PersonalCostServiceImpl.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/personalcost/PersonalCostServiceImpl.java @@ -1,23 +1,27 @@ package com.zteits.urbanops.module.garden.service.personalcost; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.zteits.urbanops.framework.common.pojo.PageResult; import com.zteits.urbanops.framework.common.util.object.BeanUtils; +import com.zteits.urbanops.module.garden.controller.admin.costfee.vo.TeamBizdomainRelVo; import com.zteits.urbanops.module.garden.controller.admin.personalcost.vo.PersonalCostPageReqVO; import com.zteits.urbanops.module.garden.controller.admin.personalcost.vo.PersonalCostSaveReqVO; import com.zteits.urbanops.module.garden.dal.dataobject.personalcost.PersonalCostDO; import com.zteits.urbanops.module.garden.dal.mysql.personalcost.PersonalCostMapper; -import com.zteits.urbanops.module.garden.controller.admin.costfee.vo.TeamBizdomainRelVo; - import com.zteits.urbanops.module.system.api.dept.DeptApi; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import org.springframework.validation.annotation.Validated; import java.util.List; import java.util.stream.Collectors; +import static com.zteits.urbanops.framework.common.exception.enums.GlobalErrorCodeConstants.BAD_REQUEST; import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception0; import static com.zteits.urbanops.module.garden.enums.ErrorCodeConstants.PERSONAL_COST_NOT_EXISTS; /** @@ -44,6 +48,29 @@ public class PersonalCostServiceImpl implements PersonalCostService { .map(TeamBizdomainRelVo::getTeamId) .collect(Collectors.toList()); personalCost.setDeptId(deptIds); + if (CollectionUtils.isEmpty(deptIds)) { + throw exception0(BAD_REQUEST.getCode(), "部门ID集合不能为空"); + } + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); + queryWrapper.eq(PersonalCostDO::getSalaryMonth, createReqVO.getSalaryMonth()); + queryWrapper.eq(PersonalCostDO::getName, createReqVO.getName()); + queryWrapper.eq(PersonalCostDO::getCompanyId, createReqVO.getCompanyId()); + List existingList = personalCostMapper.selectList(queryWrapper); + if(!CollectionUtils.isEmpty(existingList)) { + for (PersonalCostDO existing : existingList) { + List existingDeptList = existing.getDeptId(); + if (CollectionUtils.isEmpty(existingDeptList)) { + continue; + } + boolean isDuplicate = deptIds.stream() + .anyMatch(existingDeptList::contains); + + if (isDuplicate) { + String userName = createReqVO.getName(); + throw exception0(BAD_REQUEST.getCode(), "人员" + userName + "费用已录入"); + } + } + } personalCostMapper.insert(personalCost); // 返回 return personalCost.getId();