@Override public void saveValidationStamp(ValidationStamp validationStamp) { // Update try { getNamedParameterJdbcTemplate().update( "UPDATE VALIDATION_STAMPS SET NAME = :name, DESCRIPTION = :description, DATA_TYPE_ID = :dataTypeId, DATA_TYPE_CONFIG = CAST(:dataTypeConfig AS JSONB) WHERE ID = :id", params("name", validationStamp.getName()) .addValue("description", validationStamp.getDescription()) .addValue("id", validationStamp.id()) .addValue("dataTypeId", validationStamp.getDataType() != null ? validationStamp.getDataType().getDescriptor().getId() : null) .addValue("dataTypeConfig", validationStamp.getDataType() != null ? writeJson(validationStamp.getDataType().getConfig()) : null) ); } catch (DuplicateKeyException ex) { throw new ValidationStampNameAlreadyDefinedException(validationStamp.getName()); } }
@Override public void bulkUpdateValidationStamps(ID validationStampId) { // Description & name ValidationStamp validationStamp = getValidationStamp(validationStampId); String description = validationStamp.getDescription(); String name = validationStamp.getName(); // Image Document image = getValidationStampImage(validationStampId); // Bulk update getNamedParameterJdbcTemplate().update( "UPDATE VALIDATION_STAMPS SET IMAGETYPE = :type, IMAGEBYTES = :content, DESCRIPTION = :description, " + "DATA_TYPE_ID = :dataTypeId, DATA_TYPE_CONFIG = CAST(:dataTypeConfig AS JSONB) " + "WHERE ID <> :id AND NAME = :name", params("id", validationStampId.getValue()) .addValue("name", name) .addValue("description", description) .addValue("type", Document.isValid(image) ? image.getType() : null) .addValue("content", Document.isValid(image) ? image.getContent() : null) .addValue("dataTypeId", validationStamp.getDataType() != null ? validationStamp.getDataType().getDescriptor().getId() : null) .addValue("dataTypeConfig", validationStamp.getDataType() != null ? writeJson(validationStamp.getDataType().getConfig()) : null) ); }
@Override public ValidationStamp newValidationStamp(ValidationStamp validationStamp) { // Creation try { // Order nb = max + 1 Integer orderNbValue = getFirstItem( "SELECT MAX(ORDERNB) FROM VALIDATION_STAMPS WHERE BRANCHID = :branchId", params("branchId", validationStamp.getBranch().id()), Integer.class ); int orderNb = orderNbValue != null ? orderNbValue + 1 : 0; // Insertion int id = dbCreate( "INSERT INTO VALIDATION_STAMPS(BRANCHID, NAME, DESCRIPTION, ORDERNB, CREATION, CREATOR, DATA_TYPE_ID, DATA_TYPE_CONFIG) VALUES (:branchId, :name, :description, :orderNb, :creation, :creator, :dataTypeId, CAST(:dataTypeConfig AS JSONB))", params("name", validationStamp.getName()) .addValue("description", validationStamp.getDescription()) .addValue("branchId", validationStamp.getBranch().id()) .addValue("orderNb", orderNb) .addValue("creation", dateTimeForDB(validationStamp.getSignature().getTime())) .addValue("creator", validationStamp.getSignature().getUser().getName()) .addValue("dataTypeId", validationStamp.getDataType() != null ? validationStamp.getDataType().getDescriptor().getId() : null) .addValue("dataTypeConfig", validationStamp.getDataType() != null ? writeJson(validationStamp.getDataType().getConfig()) : null) ); return validationStamp.withId(id(id)); } catch (DuplicateKeyException ex) { throw new ValidationStampNameAlreadyDefinedException(validationStamp.getName()); } }