diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsSalaryConfigServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsSalaryConfigServiceImpl.java index 4f086a1..f69228d 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsSalaryConfigServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsSalaryConfigServiceImpl.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.pusong.business.domain.bo.PsSalaryConfigAddVo; import com.pusong.business.domain.vo.PsSalaryConfigInfoVo; +import com.pusong.common.core.exception.ServiceException; import com.pusong.common.core.utils.MapstructUtils; import com.pusong.common.mybatis.core.page.TableDataInfo; import com.pusong.common.mybatis.core.page.PageQuery; @@ -20,6 +21,7 @@ import com.pusong.business.domain.vo.PsSalaryConfigVo; import com.pusong.business.domain.PsSalaryConfig; import com.pusong.business.mapper.PsSalaryConfigMapper; import com.pusong.business.service.IPsSalaryConfigService; +import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.*; @@ -107,6 +109,7 @@ public class PsSalaryConfigServiceImpl implements IPsSalaryConfigService { * * @param addVo 提成模板信息 */ + @Transactional(rollbackFor = Exception.class) public void add(PsSalaryConfigAddVo addVo){ List list = MapstructUtils.convert(addVo.getSalaryConfigVoList(), PsSalaryConfig.class); String code = addVo.getTemplateCode() == null ? UUID.randomUUID().toString() : addVo.getTemplateCode(); @@ -116,12 +119,22 @@ public class PsSalaryConfigServiceImpl implements IPsSalaryConfigService { log.info("修改配置成功"); } for (String post : addVo.getPostId().split(",")) { + List spList = new ArrayList<>(); list.forEach(item->{ item.setId(null); item.setTemplateCode(code); item.setTemplateName(addVo.getTemplateName()); item.setPostId(Long.valueOf(post)); + spList.add(item.getServiceProject()); }); + LambdaQueryWrapper wq = Wrappers.lambdaQuery().eq(PsSalaryConfig::getDelFlag, 0) + .eq(PsSalaryConfig::getPostId,post).in(PsSalaryConfig::getServiceProject,spList); + + Long num = baseMapper.selectCount(Wrappers.lambdaQuery().eq(PsSalaryConfig::getDelFlag, 0) + .eq(PsSalaryConfig::getPostId, post).in(PsSalaryConfig::getServiceProject, spList)); + if(num>0){ + throw new ServiceException("岗位的服务项目重复"); + } baseMapper.insertBatch(list); } }