荆轲刺秦王
对于业务编码通常要求唯一性,废话不多说 上代码:
/**
* 检查编号是否存在
*/
private boolean checkCodeNotExist(String code, String id, Integer epid, String deptId) {
if (StringUtils.isEmpty(code)) {
return true;
}
LambdaQueryWrapper<ProdValueEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ProdValueEntity::getEpid, epid).eq(ProdValueEntity::getOutputValueNum, code).eq(ProdValueEntity::getIsDelete, 0)
.eq(ProdValueEntity::getDeptId, deptId);
if (StringUtils.isNotBlank(id)) {
queryWrapper.notIn(ProdValueEntity::getId, Collections.singletonList(id));
}
return prodValueMapper.selectCount(queryWrapper) <= 0;
}
使用:
public String insert(ProdValueInsertParam param, String username, Integer epid) throws Exception {
Assert.isTrue(checkCodeNotExist(param.getOutputValueNum(), null, epid, param.getDeptId() ),"编号已经存在,不允许重复");
ProdValueEntity prodValueEntity = new ProdValueEntity();
BeanUtils.copyProperties(param, prodValueEntity);
String id = UUID.randomUUID().toString().replaceAll("-","");
prodValueEntity.setId(id);
prodValueEntity.setReportDate(DateUtils.longToDate(param.getReportDate()));
prodValueMapper.insert(prodValueEntity);
return id;
}
扩展:对于断言的使用:
import org.springframework.util.Assert;
// 查询数据不存在
MeterChangeProjCmd cmd = changeProjCmdMapper.selectById(id);
Assert.notNull(cmd, "数据不存在" + id);
// 验证字段状态
MeterChangeProjCmd cmd = changeProjCmdMapper.selectById(id);
Assert.isTrue(AuditStatusEnum.AUDIT_END.getStatus().equals(cmd.getAuditStatus()),"工程指令单已审核才可以分发");